macOSのシェル設定をzsh以外にしている場合にCursor Agentにzsh以外を使わせる方法
皆さん、AIと仲良くやってますか。僕はCursor Agent + Gemini 2.5 Pro (Thinking)が妙に肌に合いまして、設計からコーディングまで、幅広い作業を任せております。
さて、Cursorに限ったことではありませんが、AIエージェントは必要に応じて様々な作業をやってくれます。コードの読み書きが主なものとなりますが、場合によってはシェル実行を伴うこともあります。
以前の筆者は「AIのことはそこまで信用してないので、シェル実行はコマンドだけ示してくれたらこっちでやるよ」というスタンスでした。しかしながら、少しずつAIと打ち解けてきて、そろそろシェルの実行も任せてもいいかなという気分になってきたため、ふとエージェントにシェルを実行させてみました。するとですね。
zsh: command not found: yarn
おっと失敗したぞ……?
bash環境が読み込まれていない
実は上記のエラーは、macOS標準のzshをそのまま使っている人には起こりません(たぶん)。筆者はデフォルトのシェルをbashに切り替えてmacOSを使っているので、zshが動いてしまうと様々な初期化スクリプトが動かなくなってしまうのですよね。
当のエージェントとも相談して、エージェント主導で echo $SHELL
を実行してもらってみたりもしたのですが、しっかり中身は /bin/bash
でした。なんでやろ……とエージェントと2人で頭を抱えることになりました。
settings.jsonに追記して解決
いろいろ調べてみたのですが、いくつかのフォーラムで言及のあった設定に目を留めました。
最終的に採用したのは下記の設定です。
"terminal.integrated.defaultProfile.osx": "bash"
GUIでいうと、次のところにあります。
この設定を入れてCursorを再起動してみたところ、エージェントが利用するシェルがbashに切り替わりました。やったぜ。
設定内容について
今回の設定の公式ドキュメントはこちらです。
こちらもエージェントと読み合わせて、ドキュメントが意図している設定の不足があったり、なんらかの悪用をしてしまっていないか相談してみました。基本的には本来の用途に使えていそうなので一安心です。
おまけの話
元のフォーラムだと "terminal.integrated.shellIntegration.enabled": false
を組み合わせるような記述が多かったので、公式ドキュメントをあたって、エージェントと一緒に読み合わせてみました。
こちらはターミナル内の設定にVSCode側から働きかけるためのものらしく、特段オフにする必要も感じなかったので、不採用にしました。
まとめ
これでエージェントにシェル実行を任せられるようになりました。基本的には、随時許可を出していく運用をしばらく続けてみようとは思っています。
精度が上がってきたら Auto-run
設定にしてみようかな……
Discussion