Could not locate the Claude CLI on PATH
IDEや拡張機能が claude 実行ファイルを見つけられない状態。PATHの伝わり方が原因。
エラー文字列
Could not locate the Claude CLI on PATH
何が起きているか
このメッセージを出しているのは Claude Code 本体ではありません。 IDE の拡張機能やラッパーが claude の実行ファイルを探して、見つけられなかったときに出します。
⭐ そのため「ターミナルでは claude が動くのに、IDE からは動かない」という状況が典型です。 これは矛盾ではなく、PATH の伝わり方が違うために起きます。
| 起動経路 | PATH の出どころ |
|---|---|
| ターミナルで手打ち | シェルの設定ファイル(.zshrc など)を読み込んだ後の PATH |
| IDE の拡張機能 | IDE のプロセスが起動した時点の PATH |
| Windows のスタートメニューから起動した IDE | ログイン時の環境変数。その後の変更は反映されない |
| macOS の Dock から起動した IDE | シェルの設定ファイルを読まないため、.zshrc で追加したパスが無い |
直し方
1. まず実体があるか確認する
macOS / Linux
which -a claude
Windows(PowerShell)
Get-Command claude -All -ErrorAction SilentlyContinue | Select-Object Source, CommandType
出力で分岐します。
| 結果 | 原因 | 進む先 |
|---|---|---|
| 何も返らない | インストールされていない、または PATH に無い | 手順 2 |
| パスが返る(ターミナルでは動く) | IDE に PATH が伝わっていない | 手順 3 |
2. 実行ファイルを探す(PATH に無い場合)
インストール方法によって場所が変わります。
Windows(PowerShell)
foreach ($p in @(
"$env:LOCALAPPDATA\Programs\claude\claude.exe",
"$env:USERPROFILE\.local\bin\claude.exe",
"$env:USERPROFILE\.claude\local\claude.exe",
"$env:APPDATA\npm\claude.cmd"
)) { "$p -> " + (Test-Path $p) }
macOS / Linux
ls -l ~/.local/bin/claude ~/.claude/local/claude 2>/dev/null
npm root -g 2>/dev/null
npm でグローバルインストールしている場合は、npm のグローバル bin ディレクトリが PATH に入っているか確認します。
⚠️ npm bin -g は npm 9 で削除されました。 実行すると Unknown command: "bin" になります。現在は npm prefix -g を使います。
npm prefix -g
⚠️ 返るのは prefix であって bin ディレクトリそのものではありません。 OS によって場所が違います。
| OS | 実行ファイルの場所 |
|---|---|
| Windows | <prefix> 直下(例: C:\Users\you\AppData\Roaming\npm) |
| macOS / Linux | <prefix>/bin(例: /usr/local/bin) |
macOS / Linux では次で確認できます。
ls "$(npm prefix -g)/bin" | grep -i claude
見つからなければ入れ直します。
claude update
または
npm install -g @anthropic-ai/claude
3. IDE に PATH を伝える(ターミナルでは動く場合)
⭐ 最も確実で、最も忘れられている対処が「IDE を完全に再起動する」です。
⚠️ ウィンドウを閉じるだけでは足りません。プロセスごと終了させてから起動し直してください。
Windows
Get-Process Code -ErrorAction SilentlyContinue | Stop-Process
macOS の VS Code を、シェルの PATH を引き継いだ状態で起動する
# ターミナルから起動すると、そのシェルの環境がそのまま渡る
code .
Dock やアプリケーションフォルダから起動した VS Code には .zshrc の内容が渡りません。ターミナルから code . で開くと解決することが多くあります。
4. 拡張機能に実行ファイルのパスを直接教える
再起動でも直らない場合、拡張機能の設定でパスを明示します。設定項目の名前は拡張機能によりますが、claude の実行ファイルパスを指定できる項目があります。
⚠️ Windows のパスを JSON に書くときはバックスラッシュのエスケープが必要です。
{
"claude.executablePath": "C:\\Users\\you\\AppData\\Local\\Programs\\claude\\claude.exe"
}
C:\Users\... と1本のバックスラッシュで書くと JSON が壊れ、別のエラーになります。\\ にするか C:/Users/... とスラッシュで書いてください。
5. PATH を恒久的に通す
Windows(ユーザー環境変数)
$dir = "$env:LOCALAPPDATA\Programs\claude" # 手順 2 で見つかった実際のパス
$old = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$old;$dir", "User")
macOS / Linux
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
設定後は、ターミナルと IDE の両方を再起動してください。
6. 実際のエラーを直接見る
ラッパー越しだと本来のエラーが隠れます。ターミナルで直接起動すると、本当の原因が読めます。
claude --debug
再発防止
- PATH を変えたら、ターミナルと IDE の両方を再起動する。 これを習慣にするだけで、この系統の問い合わせはほぼ消えます
- macOS では ターミナルから
code .で IDE を開く運用にすると、環境の食い違いが起きません - チームの環境構築手順に、インストール先のパスと PATH への追加まで書いておく
- IDE 側のエラーメッセージは間接的です。まずターミナルで直接動かして切り分けるのが最短です