Claude Code をターミナルで起動しようとして claude と打ったら、zsh: permission denied: claude と出て動かなくなったことがありました。
この記事では、そのときに私が実際に確認して直した手順を、順番にまとめています。
あわせて、これで直らなかった場合に試せそうな方法も、調べた範囲の情報として最後に添えます(私が体験したのは chmod で直るところまでです)。
permission denied はどういう状態なのか
ターミナルで claude と打つと、こんなエラーが出ました。
zsh: permission denied: claude
permission denied は、「そのファイルはあるけれど、実行する権限が付いていない」という状態のようです。
コマンドが見つからない(command not found)とは別で、ファイル自体は存在しているのがこのエラーの特徴だと思います。
なので、いきなり入れ直すのではなく、まず「どこにあるか」「本当に権限がないのか」を順番に確認していきました。
私が実際にやった確認と対処
環境はMac(zsh、npmはHomebrew経由でインストール)です。
Homebrewのインストール方法については別記事をご参照ください。

①claude コマンドの場所を確認する
まず、claude がどこにあるかを確認しました。
which claude
私の場合、ここでは claude not found と出て、見つかりませんでした。
「permission denied なのに、which では見つからない」というのが、最初は不思議でした。
②npmのインストール先を確認する
which で見つからなかったので、npmでグローバルに入れたものがどこに置かれているかを確認しました。
npm config get prefix
私の環境では /opt/homebrew と表示されました。
ここが分かれば、claude 本体はこの中の bin フォルダにあるはず、と見当がつきます。
③ファイルが本当にあるか確認する
実際にファイルがあるかを、直接確認しました。
ls /opt/homebrew/bin/claude
結果、ファイルはちゃんと存在していました。
ファイルはあるのに実行できない。つまり、やはり実行権限が付いていないだけだと分かりました。
④実行権限を付与する
そこで、このファイルに実行権限を付けました。
chmod +x /opt/homebrew/bin/claude
chmod +x は、そのファイルに「実行してよい」という権限を付けるコマンドです。
これで permission denied は解消されました。
ファイルの場所は環境で変わります
私の場合は /opt/homebrew でしたが、npmをどう入れたかで場所は変わるようです。
npm config get prefix で出た場所の中の bin/claude が対象になります。自分の環境の値に置き換えて使うのが安全だと思います。
私の場合はこのあと別のエラーが出ました
実は私の場合、chmod +x で permission denied が消えたあと、今度は別のエラー(native binary not installed)が続けて出てきました。
権限のエラーと、本体が入っていないエラーが、連続して出るパターンだったようです。
そのときの一部始終(どのエラーがどの順番で出て、それぞれどう直したか)は、別の記事に時系列でまとめています。
複数のエラーが立て続けに出て混乱している場合は、こちらもあわせて読むと流れがつかみやすいと思います。

chmod +x で直らなかった場合(調べた範囲の情報)
ここからは、私が体験した範囲ではなく、調べる中で出てきた「これで直らなかった場合」の情報です。
私自身はこの先は経験していないので、調査情報として整理しておきます。
ファイルの所有者を確認する方法
chmod +x をしても直らない場合、そのファイルの持ち主(所有者)が自分になっていないことがあるようです。
所有者や権限の状態は、次のコマンドで確認できるようです。
ls -la /opt/homebrew/bin/claude
表示された行に、そのファイルの所有者の名前が出るので、そこが自分のユーザー名になっているかを見る、という流れのようです。
所有者が自分でない場合は、chown(所有者を変えるコマンド)で自分に変える方法が紹介されていました。
chown を使うときの注意(調べた範囲で)
調べていて何度も注意されていたのが、システム全体のフォルダ(/usr など)を、まとめて(再帰的に)chownしないことでした。
広い範囲の所有者を一気に変えてしまうと、Mac自体の動作に影響が出ることがあるようです。対象は claude のファイルなど、必要な場所だけに絞るのが安全そうだと感じました。
ここは私も未経験で、影響も大きい部分なので、不安な場合は無理に進めないほうがよさそうだと思います。
VSCodeやCursorのターミナルでだけ出る場合
もうひとつ見つけたのが、普通のターミナルでは動くのに、VSCodeやCursorの中のターミナルでだけ動かないというケースです。
これはエディタが読み込む設定ファイルが、普通のターミナルと違うことがあるためのようで、権限そのものというより設定の読み込みの問題に近いようでした。
この場合は権限とは切り分けて考えたほうがよさそうです。
確認に使ったコマンドまとめ
今後また出たときに自分で見返せるように、今回使ったコマンドを整理しておきます。
| コマンド | 何を確認・実行するか |
which claude | claudeの場所を確認(見つからないこともある) |
npm config get prefix | npmで入れたものの置き場所を確認 |
ls /opt/homebrew/bin/claude | ファイルが実際に存在するかを確認 |
chmod +x ファイルパス | 実行権限を付与する |
ls -la ファイルパス | 所有者や権限の状態を確認(chmodで直らない場合) |
まとめ
zsh: permission denied: claude は、claude のファイル自体はあるのに、実行権限が付いていないときに出るエラーでした。
私の場合は、場所を確認して(which claude→npm config get prefix→ls)、ファイルがあることを確かめてから chmod +x で実行権限を付けることで解消できました。
調べた範囲では、これで直らない場合に所有者を確認する方法もあるようですが、システム全体の所有者を変えるのは影響が大きいようなので、対象を絞って慎重に進めるのがよさそうだと感じました。
私の場合はこのあと別のエラーにも続けて遭遇したので、複数のエラーが連鎖している場合は、時系列でまとめた別記事のほうも見返しながら対処していくつもりです。


