1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code のインストール後に "claude: command not found" / "~/.local/bin is not in your PATH" と出たときの PATH の通し方(zsh・bash)

1
Posted at

Claude Code をインストールしたのに、ターミナルで claude と打つと command not found になる、あるいはインストーラが Native installation exists but ~/.local/bin is not in your PATH と警告したときの手順です。原因はほぼ「claude の置き場所 ~/.local/bin が PATH に入っていない」ことで、zsh なら ~/.zshrc に 1 行足して読み込み直せば直ります。

確認環境は Claude Code 2.1.322、macOS 26.6.2、2026-11-13 です。

症状

claude を実行すると、シェルごとに次のように返ります。公式の表では、環境別に次の文言が挙がっています。

zsh: command not found: claude
bash: claude: command not found
'claude' is not recognized as an internal or external command
claude : The term 'claude' is not recognized as the name of a cmdlet

上から順に macOS(zsh)、Linux(bash)、Windows のコマンドプロンプト、PowerShell です。

インストーラの出力の Setup notes: には、次の警告が出ます。

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

警告には、あわせて次の形の実行コマンドが示されます(<rc> は使っているシェルの設定ファイル)。

Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> <rc>

結論

  • インストール自体は成功しています。ネイティブ版の claude は ~/.local/bin/claude に置かれますが、そのフォルダがシェルの検索対象(PATH)に入っていません。
  • zsh(macOS の標準)なら、次の 2 行で直ります。
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
  • 公式によると、インストーラは警告と修正コマンドを表示するだけで、PATH 自体は書き換えません。

原因

シェルは claude のようなコマンド名を、PATH に並んだフォルダを順に探して見つけます。ネイティブインストーラは claude を ~/.local/bin に置きますが、PATH への追加は行いません。このフォルダが PATH に入っていなければ、ファイルがあっても見つからず command not found になります。

手元で確かめた結果

PATH に ~/.local/bin を含まない状態を env -i で作って、同じ現象を再現しました。この Mac の ~/.local/bin/claude は実在します(claude --version が通る環境です)。シェルの設定ファイルは読み込ませていません(zsh は -f、bash は --noprofile --norc)。

zsh で、PATH を /usr/bin:/bin だけにした場合です。

$ env -i PATH=/usr/bin:/bin /bin/zsh -f -c 'claude --version; echo "exit=$?"'
zsh:1: command not found: claude
exit=127

zsh:1: の 1 は -c で実行した 1 行目という意味です。対話シェルでは zsh: command not found: claude と出ます。終了コードは 127 です。

bash でも同じです。

$ env -i PATH=/usr/bin:/bin /bin/bash --noprofile --norc -c 'claude --version; echo "exit=$?"'
/bin/bash: claude: command not found
exit=127

公式が案内する PATH の確認コマンドは、入っていないと何も出力せず、終了コードが 1 になります。

$ echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"
(出力なし)
grep exit=1

そこで公式の 1 行を足した状態を同じ条件で試すと、フォルダが PATH に現れ、claude が動きました。

~/.local/bin
2.1.322 (Claude Code)

直し方

1. claude 本体があるか確かめる

ls -la ~/.local/bin/claude
  • 一覧が出れば、本体はあります。次の手順へ進みます。
  • No such file or directory なら、ネイティブ版が入っていません。公式の setup のインストールからやり直します。npm や Homebrew で入れた場合は、複数インストールの確認(下の「直らないとき」)を見てください。

なお、公式によると VS Code 拡張は自前の CLI をフォルダ内に持つだけで、PATH にも ~/.local/bin/claude にも置きません。拡張だけ入れた状態では、ターミナルの claude は使えません。標準のインストールを別に行います。

2. PATH に入っているか確かめる

echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

/Users/あなた/.local/bin(Linux なら /home/あなた/.local/bin)が出れば PATH には入っています。何も出なければ、次で足します。

3. 使っているシェルに合わせて追記する

公式の手順を、シェル別にまとめます。echo は成功すると何も表示しません。

zsh(macOS の標準):

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Linux の bash:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

macOS の bash は、~/.bashrc ではなく ~/.bash_profile に書きます。公式によると、macOS のターミナルは bash をログインシェルとして起動し、~/.bash_profile、~/.bash_login、~/.profile のうち最初に存在するものだけを読むためです。~/.bash_login か ~/.profile がすでにあって ~/.bash_profile が無い場合は、新しく作らずそのファイルに書きます。

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

fish や Nushell は、そのシェル自身の書き方で ~/.local/bin を PATH に足してから、ターミナルを開き直します。

使っているシェルが分からないときは echo $0 で確かめます。

4. 確かめる

claude --version

2.1.322 (Claude Code) のようにバージョンが出れば完了です。

直らないとき

公式が挙げている原因は次の 3 つです。

  1. 変更前に開いたターミナルは、古い PATH のままです。新しいウィンドウを開くか、エディタ内蔵のターミナルならエディタを一度終了して開き直します。エディタ内のターミナルは、PATH をエディタから引き継ぎます。
  2. 追記が保存されていません。次で確かめます(使っているシェルのファイル名に置き換えます)。何も出なければ、手順 3 をやり直します。
grep -n '.local/bin' ~/.zshrc
  1. 別のシェルのファイルに書いています。echo $0 で今のシェルを確認し、そのシェル用のコマンドを実行します。

echo の段階で permission denied が出る場合は、設定ファイルへ書き込めておらず、何も保存されていません。公式の案内は次のとおりです。

ls -l ~/.zshrc

3 番目の項目が所有者です。root など他のユーザなら sudo chown $(whoami) ~/.zshrc で自分のものにします(管理者権限が必要です)。自分が所有者なら読み取り専用なので chmod u+w ~/.zshrc で書けるようにします。そのうえで手順 3 をやり直します。

複数のインストールが混ざっていないか

ネイティブ版以外(npm、Homebrew、旧 ~/.claude/local/)が混在していると、意図しない claude が呼ばれることがあります。公式は次の 3 か所を確認し、残すのはネイティブ版 1 つだけにするよう案内しています。

which -a claude
ls -la ~/.local/bin/claude
ls -la ~/.claude/local/
npm -g ls @anthropic-ai/claude-code 2>/dev/null

which -a claude はPATH上にある claude を全部並べます。~/.local/bin/claude はネイティブ版、~/.claude/local/ は古い版の Claude Code が作った npm 版、最後の行は npm のグローバルインストールです。No such file or directory は、その場所に何も入っていないという意味でエラーではありません。~/.local/bin/claude はあるのに which -a claude の一覧に出ないなら、フォルダが PATH に入っていない状態で、手順 2 以降に戻ります。

PATH に入っているのに警告が出続けるとき

issue では、~/.local/bin が PATH に入っているのに Native installation exists but ~/.local/bin is not in your PATH が出続ける報告もあります(#65532、#104403)。これらの報告では、Claude Code が自分のインストール先を見ているシェルの PATH と、普段使っているシェルの PATH が食い違っているようです(原因はこの記事の筆者の推測を含みます)。which claude で claude が見つかり、claude --version が通るなら、実害はないので警告は無視してかまいません。

同じ原因で出る別のメッセージ

Windows の 'claude' is not recognized as an internal or external command や claude : The term 'claude' is not recognized as the name of a cmdlet も、考え方は同じです。インストール先は %USERPROFILE%\.local\bin\claude.exe で、そのフォルダが PATH に入っていません。確認コマンドと追加方法は、公式の Verify your PATH の Windows の節にあります。更新の直後から出始めた場合は、claude.exe のバックアップから戻す節が別にあります。

Claude Code で出るほかの英文エラーと、それぞれの対処は、早見表にまとめています。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?