Claude Code をインストールしたのに、ターミナルで claude を叩くとこう出る——そんな経験はないだろうか:

zsh: command not found: claude                                         # macOS
bash: claude: command not found                                        # Linux
'claude' is not recognized as an internal or external command         # Windows CMD
claude : The term 'claude' is not recognized as the name of a cmdlet   # PowerShell

これは 「claude という実行ファイルが見つからない」というエラーで、原因の大半は 「インストール先のフォルダが PATH に入っていない」こと。インストール自体は成功していて、ただシェルが場所を知らないだけのことが多い。本記事では、インストール方法と置き場所・PATHの直し方・複数インストールの衝突・Windows特有の罠・更新系までを、2026年9月29日時点の公式ドキュメントと照らして整理する。

先に要点。① command not found はほぼ「PATH に ~/.local/bin(インストール先)が無い」だけ——追加して端末を再起動すれば直る。② npm の権限エラー(EACCES)は sudo せず、ネイティブインストーラに切り替えるのが正解。③ 困ったら claude doctor——インストール状態・設定・更新結果をまとめて点検してくれる。具体的なコマンドや既定値はバージョンで変わるため、最新は公式で確認を。

出ているメッセージから探す

表示されている文言出る場所見る節
zsh: command not found: claude
bash: claude: command not found
macOS / Linux§3
'claude' is not recognized as an internal or external command
claude : The term 'claude' is not recognized as the name of a cmdlet
Windows の CMD / PowerShell§3・§4
Native installation exists but ~/.local/bin is not in your PATHclaude doctor、入力欄の下§3
Failed to run Claude Code: Error: Could not locate the Claude CLI on PATHWindows の VS Code§4
更新の直後に 'claude' is not recognizedWindows§4
Auto-update failed · Run claude doctor起動中のセッションの表示欄§5
CLAUDE CODE · PATH

入っているのに、見つからない

— インストール先が PATH に無いだけ

$ claude
zsh: command not found: claude
$ echo $PATH を見ると…
/usr/local/bin : /usr/bin : /bin ← ~/.local/bin が無い
$ ls ~/.local/bin/claude
~/.local/bin/claude ← 実体はここに有る!
→ PATH に ~/.local/bin を足して端末を再起動

バイナリは ちゃんと存在する。シェルが探す PATH にその場所が無いだけ。
だから直し方は 「PATH に1行足す」——たいてい数十秒で終わる。

1. このエラーは何を言っているのか

シェル(zsh / bash / PowerShell)は、コマンドを打つと PATH という環境変数に並んだフォルダを順に探して、その名前の実行ファイルを見つけたら動かす。command not found: claude は、その PATH のどのフォルダにも claude が無かったという意味だ。

ここで大事なのは 「インストール失敗とは限らない」こと。ネイティブインストーラは claude を ~/.local/bin(Windows は %USERPROFILE%\.local\bin)に置くが、このフォルダが PATH に入っていないと、実体はあるのにシェルが見つけられない。だから 多くのケースは「PATH に1行足して端末を再起動」で直る。失敗を疑う前に、まず ls ~/.local/bin/claude で実体があるかを確認しよう。

なお Windows では、インストールコマンドの“シェル取り違え”(PowerShell用を CMD で実行する等)で別のエラーが出る。これは §4 で扱う。まずは正しいインストール方法と置き場所を押さえる。

2. インストール方法と置き場所

2026年9月29日時点で公式のセットアップのページに載っているインストール方法と、バイナリの置き場所はこうだ(推奨はネイティブインストーラ)。

方法コマンド(概形)置き場所 / 注意
ネイティブ(推奨)mac/Linux/WSLcurl -fsSL https://claude.ai/install.sh | bash~/.local/bin/claude(自動更新あり)
ネイティブ(推奨)Windows の PowerShellirm https://claude.ai/install.ps1 | iex%USERPROFILE%\.local\bin\claude.exe(自動更新あり)
ネイティブ(推奨)Windows の CMDcurl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd置き場所は PowerShell と同じ
npmnpm install -g @anthropic-ai/claude-codeNode.js 22 以上(v2.1.198 から)で、同じネイティブバイナリを導入
Homebrew(mac)brew install --cask claude-code自動更新なし → brew upgrade claude-code(毎回の版を追う claude-code@latest もある)
WinGet(Windows)winget install Anthropic.ClaudeCode自動更新なし → winget upgrade Anthropic.ClaudeCode
apt / dnf / apk(Linux)Debian・Fedora・RHEL・Alpine 向けの署名付きリポジトリ自動更新なし → パッケージマネージャで更新

ポイントは 「公式はネイティブインストーラを推奨」していること。npm 版も同じネイティブバイナリを入れる。npm のパッケージは v2.1.198 から Node.js 22 以上を求めるが、古い Node.js でも npm が EBADENGINE の警告を出すだけでインストールは完了する(バイナリは動作に Node を使わない)。npm 経由は権限・PATH のトラブルが起きやすいので、これから入れるなら迷わずネイティブが無難だ。なお VS Code 拡張だけを入れた場合は、拡張内に専用CLIが同梱され claude は PATH に追加されない——ターミナルで claude を使いたいなら別途インストールが必要だ。

3. 繋がらない主な原因と対処

command not found と、その周辺でハマりやすい原因を対処とセットで挙げる。

ROOT CAUSES

インストール・PATHの主因

① PATH に無い(最多)
~/.local/bin が PATH 外。~/.zshrc/~/.bashrc に export PATH="$HOME/.local/bin:$PATH" を足して端末再起動。
② npm の権限エラー(EACCES)
sudo npm はしない(公式が非推奨)。ネイティブインストーラに切り替えるのが最短で安全。
③ Node.js が古い(npm版)
npm 版は v2.1.198 から Node.js 22 以上を求めるが、古くても EBADENGINE の警告が出るだけ。claude が見つからない原因にはならない——先に PATH を見る。
④ 複数インストールの衝突
npm+ネイティブ+Homebrew が混在。which -a claude(Win:where.exe claude)で確認し、ネイティブ1本に絞る。
⑤ ネイティブバイナリが無い(npm)
Error: claude native binary not installed. は、optional 依存か postinstall が飛ばされたときに出る。--omit=optional / --ignore-scripts を外して入れ直す。

迷ったら 「ネイティブインストーラで入れ直す」が大半を解決する。
権限・Node・衝突の問題をまとめて回避できる。

PATH追加の具体例(mac の zsh):echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc の後 source ~/.zshrc。Linux の bash なら ~/.bashrc に同様に。mac で bash を使っているなら ~/.bash_profile に書く(ターミナルは bash をログインシェルとして起動し、~/.bashrc を読まない)。Windows の PowerShell なら [Environment]::SetEnvironmentVariable('PATH', "$([Environment]::GetEnvironmentVariable('PATH', 'User'));$env:USERPROFILE\.local\bin", 'User') でユーザーの PATH に足す。変更後は新しい端末を開き、claude --version で確かめる。

「Native installation exists but ~/.local/bin is not in your PATH」

この警告は claude doctor の出力(Installation warnings の欄)と入力欄の下に出る。公式の GitHub の issue に利用者が貼った文面はこうだ。

Native installation exists but ~/.local/bin is not in your PATH
Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc then open a new terminal or run: source ~/.zshrc

意味は 「ネイティブ版は ~/.local/bin に入っているが、そのフォルダが Claude Code から見た PATH に無い」。直し方は上と同じで、シェルの設定ファイルに1行足して新しい端末を開く。新しい端末で echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin" がフォルダを表示するのに警告が消えない場合は、GitHub で報告されている例にあたる(#63695:PATH を ~/.zshenv だけに書き、VS Code の端末から起動/#75431:claude を別の場所に入れている)。どちらも2026年9月29日時点で修正されないまま閉じられている。新しい端末で claude --version が動くなら、インストール自体は問題ない。

4. Windows特有の罠

Windows では、インストールコマンドを“別のシェル”で実行して失敗するのが定番だ。出るエラーで取り違えが分かる。

シェル取り違えの見分け方

エラー意味と対処
'irm' is not recognized as an internal or external commandCMDでPowerShell用を実行 → PowerShellを開いて irm https://claude.ai/install.ps1 | iex、または CMD 用のインストーラへ
The token '&&' is not a valid statement separatorPowerShellでCMD用を実行 → PowerShellインストーラへ
A parameter cannot be found that matches parameter name 'fsSL'PowerShellで mac/Linux 用の curl を実行(PowerShell の curl は Invoke-WebRequest の別名)→ PowerShellインストーラへ
'bash' is not recognized as the name of a cmdletWindowsでLinux用を実行 → PowerShellインストーラへ

その他の Windows の注意点:① インストール後は端末を再起動(PATH変更は新しい端末から反映)。② 古い Claude Desktop が WindowsApps\Claude.exe を登録していると、claude が CLIではなくデスクトップアプリを起動してしまう——Claude Desktop を更新する。③ Git for Windows は任意で、無ければ Claude Code は PowerShell ツールでコマンドを動かす。Git を入れたのに Git Bash が見つからない場合は、設定の CLAUDE_CODE_GIT_BASH_PATH で bash.exe を指定。WSL を使う手もある。

VS Code の「Could not locate the Claude CLI on PATH」

Windows の VS Code 拡張で、統合ターミナル(シェルは PowerShell)から Claude Code を開いたとき、インストール済みの claude が PATH に見つからないと出る。文面の書き出しはこうだ。

Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH.

PowerShell で claude を名前だけで起動すると、インストール済みの CLI ではなく開いているフォルダの claude を動かしかねないため、拡張が起動を止めている。① VS Code の外で新しい PowerShell を開き where.exe claude を実行。何も出なければ §3 のとおり PATH にインストール先を足す。② PATH は PowerShell のプロファイルだけでなく、ユーザーかシステムの環境変数に入れる(拡張はプロファイルを読まない)。③ PATH は起動時にしか読まれないので VS Code を再起動する。

更新の直後に「'claude' is not recognized」

Windows での更新では、今の claude.exe を claude.exe.old.+時刻という名前に退避してから新しい版を置く。置き換えに失敗して名前も戻せないと、%USERPROFILE%\.local\bin に退避分だけが残り claude.exe が無くなる。PowerShell で最新の退避分を戻す。

Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

そのあと claude --version で確かめる。claude.exe.old.* が無ければ irm https://claude.ai/install.ps1 | iex で入れ直す。v2.1.281 からは、更新に失敗すると退避した実行ファイルが自動で戻される。

5. 自動更新と更新系

ネイティブインストールは バックグラウンドで自動更新され、次回起動時に反映される。手動で最新化したいときは claude update、特定バージョンの再インストール/固定は claude install <version>(stable / latest 等も指定可)。直近の更新の結果は claude doctor で確認できる。Homebrew・WinGet・apt・dnf・apk は既定では自動更新されない。Homebrew と WinGet は CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 を設定すると、Claude Code が更新コマンドを代わりに実行する。

npm版で自動更新が効かないとき

npm グローバルのフォルダに書き込み権限が無いと自動更新が失敗する。claude doctor が修正候補を出すので、それに従ってネイティブインストールへ移行するのが根本解決。自動更新を止めたいだけなら設定の env に DISABLE_AUTOUPDATER(手動更新は残る)、すべての更新を止めるなら DISABLE_UPDATES。

「Auto-update failed · Run claude doctor」

バックグラウンドの更新に失敗すると、起動中のセッションの表示欄にこれが出る。GitHub の issue に貼られた文面は2通りで、v2.1.220〜v2.1.278 では Auto-update failed · Run claude doctor、それより前の npm 版では Auto-update failed · Try claude doctor or npm i -g @anthropic-ai/claude-code。次の順で対処する。

  1. 端末で claude doctor を実行——直近の更新の結果とインストールの警告が出る。
  2. claude update を実行して今すぐ更新する。更新されれば Successfully updated from <old version> to version <new version>、待ちが無ければ Claude Code is up to date (<version>) と出る。
  3. すでに最新なら、失敗は一時的なもの(ネットワークの瞬断など)。GitHub の issue(#89286・#96038)では、セッションを再起動するまで表示が残ると報告されている。
  4. npm グローバルで、そのフォルダに書き込めないなら自動更新は動かない——ネイティブへ移る(上の枠)。
  5. 社内ネットワークで失敗が続くなら、downloads.claude.ai に届くかを確かめる。

6. 切り分けワークフロー

原因が分からないときは、上から順に。ほとんどはステップ3までで解決する。

DIAGNOSE

上から順に切り分ける

1
claude doctor(起動しないならシェルから)でインストール健全性を点検。
2
which -a claude / where.exe claude でどこに何本あるかを確認(衝突の有無)。
3
実体があるのに見つからないなら PATH に ~/.local/bin を追加して端末再起動。
4
衝突していたら余計な版を削除(npm/Homebrew/WinGet)し、ネイティブ1本に。
5
それでもダメなら ネイティブインストーラで入れ直す(権限・Node・衝突をまとめて回避)。

鉄則:「実体があるか → PATHにあるか → 衝突していないか」の順。
詰まったら最後はネイティブ入れ直しが確実。

まとめ

Claude Code の 「command not found: claude」は、多くが 「インストール先(~/.local/bin)が PATH に入っていない」だけだ。実体は存在するので、PATH に1行足して端末を再起動すれば直る。インストールは ネイティブインストーラが推奨(npm 版は Node.js 22 以上を求め、権限・PATHの罠が多い)。npm の EACCES は sudo せず、ネイティブに切り替えるのが正解だ。

切り分けは ① claude doctor → ② which -a claude / where.exe claude で衝突確認 → ③ PATH に ~/.local/bin 追加 → ④ 余計な版を削除 → ⑤ ネイティブで入れ直し。Windowsはシェル取り違え(irm を CMD で等)と端末再起動、古い Claude Desktop の Claude.exe 衝突に注意。更新は claude update / claude install、自動更新の停止は DISABLE_AUTOUPDATER。困ったら最後はネイティブ入れ直しが確実だ。関連:Claude Codeエラー集、認証・ログインエラー。

FAQ

Q. インストールしたのに command not found: claude が出ます。
A. ほぼ確実に インストール先が PATH に入っていないだけです。まず ls ~/.local/bin/claude(Windowsは %USERPROFILE%\.local\bin)で実体があるか確認し、あれば ~/.zshrc/~/.bashrc に export PATH="$HOME/.local/bin:$PATH" を追加して新しい端末を開いてください。インストール自体は成功していることが多いです。

Q. npm install -g で権限エラー(EACCES)になります。
A. sudo npm は使わないでください(公式が非推奨で、権限・セキュリティの問題を招きます)。最短で安全なのは ネイティブインストーラに切り替えること(mac/Linux:curl -fsSL https://claude.ai/install.sh | bash)。ネイティブ版は権限の罠が無く、Node も不要です。npm のグローバル prefix をユーザー領域に変える方法もありますが、公式の推奨はネイティブ移行です。

Q. 複数の claude が入っていて、古いバージョンが動きます。
A. which -a claude(Windowsは where.exe claude)でPATH上のすべての claudeを確認してください。npm グローバル・Homebrew・WinGet・ネイティブが混在していることがあります。ネイティブ(~/.local/bin)を残し、他を削除(npm uninstall -g @anthropic-ai/claude-code など)して1本に絞るのが確実です。

Q. Windowsで claude を打つとデスクトップアプリが開いてしまいます。
A. 古い Claude Desktop が WindowsApps\Claude.exe を登録しており、それが PATH 上でCLIより優先されているのが原因です。Claude Desktop を最新版に更新すると解消します。また、PowerShellインストーラ実行後に見つからない/古い場合は、端末を再起動して PATH を反映させてください。

Q. 更新がうまくいきません/更新を止めたいです。
A. ネイティブ版はバックグラウンドで自動更新され、次回起動時に反映されます。手動なら claude update、再インストール/固定は claude install <version>。Auto-update failed · Run claude doctor が出たら、claude doctor のあと claude update を実行し、最新だと出ればセッションの再起動で表示は消えます。npm グローバルで自動更新が失敗する場合は書き込み権限の問題なので、claude doctor の案内に従いネイティブへ移行を。自動更新を止めるなら設定の env に DISABLE_AUTOUPDATER、すべての更新を止めるなら DISABLE_UPDATES を設定します。