Claude Code のエラー

Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found

結論

Windows専用。Git Bash が入っていないか、WSLのbashに隠れて見つけられていない。

確認した版 Claude Code v2.1.214
確認日 2026年8月21日
文言の照合 Claude Code v2.1.238
最終更新 2026年8月21日
根拠 実機で確認

エラー文字列

Claude Code
Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found

何が起きているか

Windows でのみ起きるエラーです。

スキルの frontmatter に shell: bash が指定されていると、そのスキルは bash で実行されます。Windows には bash が標準で入っていないため、Claude Code は Git for Windows に同梱される Git Bash を探します。それが見つからないときにこのメッセージが出ます。

原因は3つあり、2番目と3番目が厄介です。

# 原因 見分け方
1 Git for Windows が入っていない git コマンド自体が使えない
2 既定以外の場所に入っている git は使えるが C:\Program Files\Git に無い
3 WSL の bash.exe に隠れている gitbash も使えるのに、このエラーが出る

⚠️ 3番が最も分かりにくい

Windows には C:\Windows\System32\bash.exe という WSL 用のスタブが最初から存在します。そして System32 は PATH のかなり前方にあります。

そのため、Git Bash を PATH に通していても、WSL のスタブが先に見つかってしまうことがあります。

実際に検証した端末では、PATH 上に bash が3つ存在していました。

C:\Windows\system32\bash.exe                               ← WSL のスタブ(先に見つかる)
C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\bash.exe ← ストア版のスタブ
D:\Programs\Git\Git\bin\bash.exe                            ← 本命の Git Bash

この状態で bash --version を実行すると、WSL が反応して次のようなエラーになります。

<3>WSL (66477 - Relay) ERROR: CreateProcessCommon:800: execvpe(/bin/bash) failed: No such file or directory

このメッセージが出たら、原因は3番で確定です。 Git Bash は入っているのに、WSL のスタブに先を越されています。

直し方

1. まず PATH 上の bash を全部出す

⚠️ Get-Command bash だけでは判断できません。 最初の1件しか返さないため、WSL のスタブが見つかった時点で「bash はある」と誤解します。

必ず -All を付けてください。

Get-Command bash -All -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source

出力を見て判断します。

出力 原因 進む先
何も返らない Git Bash が無い 手順 3
System32WindowsApps のものだけ Git Bash が無い 手順 3
Git のパスも含まれている 順序の問題 手順 4

2. Git Bash の実体を確実に探す

インストール先が分からない場合、git.exe の場所から辿るのが確実です。 既定パスを決め打ちで探すより速く、別ドライブに入れていても見つかります。

$git = Get-Command git -ErrorAction SilentlyContinue
if ($git) {
  $root = Split-Path (Split-Path $git.Source -Parent) -Parent
  "Git ルート: $root"
  "bash.exe  : " + (Test-Path "$root\bin\bash.exe")
}

Git ルート に表示されたパスの \bin が、PATH に通すべき場所です。

3. Git for Windows を入れる(原因 1)

winget install --id Git.Git -e --source winget

インストーラーで進める場合は、PATH の設定で「Git from the command line and also from 3rd-party software」を選んでください。最小構成を選ぶと bash.exe が PATH に載りません。

⚠️ インストール後は PowerShell を開き直してください。 既に開いているセッションには PATH の変更が反映されません。

入れ終わったら手順 4 も確認してください。入れただけでは 3番の問題は解決しません。

4. Git Bash を PATH の先頭に置く(原因 2・3)

⚠️ 末尾に追加しても直りません。 System32 よりに置く必要があります。

現在のセッションだけで試す

$env:Path = "D:\Programs\Git\Git\bin;" + $env:Path
Get-Command bash -All | Select-Object -ExpandProperty Source

先頭に Git のパスが来ていれば成功です。

恒久的に設定する

$gitBin = "D:\Programs\Git\Git\bin"   # 手順 2 で調べた実際のパスに置き換える
$old = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$gitBin;$old", "User")

⚠️ C:\Program Files\Git\usr\bin ではなく \bin を指定してください。 どちらにも実行ファイルがありますが、通すべきは bin の方です。

⚠️ ユーザー環境変数はシステム環境変数の後ろに連結されます。 System32 はシステム側にあるため、ユーザー側の先頭に置いても順序が逆転しないことがあります。その場合は次のどちらかを取ってください。

  • WSL を使っていないなら、Windows の「アプリ実行エイリアス」設定で bash.exe のエイリアスをオフにする
  • システム環境変数の Path の先頭に Git の bin を追加する(管理者権限が必要)

5. 確認する

bash --version
出力 判定
GNU bash, version 5.x.x(1)-release (x86_64-pc-msys) Git Bash。これが正解
GNU bash, version 5.x.x(1)-release (x86_64-pc-linux-gnu) ❌ WSL の bash。Git Bash は別に必要
<3>WSL ... execvpe(/bin/bash) failed ❌ WSL のスタブ。手順 4 へ

msys を含むかどうかが決め手です。

設定を変えたら、PowerShell とエディタの両方を再起動してください。 VS Code の統合ターミナルから Claude Code を起動している場合、VS Code 自体を再起動しないと古い PATH が引き継がれます。これを忘れて「直っていない」と誤認する例が多くあります。

6. スキル側を直す(自作スキルの場合)

自分で書いたスキルなら、bash 固有の記法をやめて /bin/sh 互換にすることで、この依存自体を無くせます。

frontmatter から shell: bash を外し、次のような bash 固有の書き方を避けてください。

bash 固有 sh 互換の書き方
[[ ... ]] [ ... ]
arr=(a b c) 配列を使わず、スペース区切りの文字列と for で回す
${var,,} printf '%s' "$var" | tr 'A-Z' 'a-z'
source file . file
function f() {} f() {}

配布するスキルなら、sh 互換にしておくと Windows 利用者の環境依存を1つ減らせます。

再発防止

  • Windows で Claude Code を使うなら Git for Windows を入れ、PATH の先頭に置く。 このエラー以外にも、bash 前提のツールで詰まる場面が減ります
  • Get-Command bash を単体で使わない。 必ず -All を付ける。付けないと WSL のスタブに騙されます
  • Git を既定以外の場所(別ドライブなど)へ入れた場合は、インストール直後に PATH の順序を確認しておく
  • チームに Windows 利用者がいるなら、環境構築手順に「Git for Windows を入れ、\bin を PATH の先頭へ」まで書いておく
  • PATH を変えたら、ターミナルとエディタの両方を再起動する

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する