コンテンツにスキップ

Shell

Shell は、プロジェクトのコンテナ内でコマンドを実行するモジュールです。AI がビルドやテスト、git の操作などを行うときに使います。

AI は runCommand ツールでコマンドを実行します。実行前に、権限モードに応じて承認カードが表示されます。カードには、実行するコマンドと作業ディレクトリが表示されます。

  • コマンドはプロジェクトのコンテナ内で、プロジェクトのルートを基準に実行されます
  • 既定のタイムアウトは120秒です
  • 出力が長い場合は先頭と末尾だけが AI に返され、全体はファイルに保存されます

ビルドや E2E テストなど時間のかかるコマンドは、完了を待たずにバックグラウンドで実行できます。

  • 実行するとすぐに制御が戻り、AI はほかの作業を続けられます
  • コマンドが終了すると、終了コードと出力の末尾が会話に届き、AI が再び動き出します
  • 実行中のコマンドは、サイドバーの会話名の下に「バックグラウンドで n 件」と表示されます
  • banto を再起動しても、コマンドは止まらずに実行を続けます

実行中のコマンドの一覧は listCommands、停止は cancelCommand で行います。どちらも、そのコマンドを実行した会話からのみ操作できます。

API トークンや SSH 鍵が必要なコマンドでは、Vault に登録したシークレットを参照名で指定します。値はコマンドのプロセスに直接渡され、AI のコンテキストや会話の履歴には含まれません。

指定方法 用途
環境変数として渡す(envSecrets) GH_TOKEN などのトークン
ファイルとして渡す(secretFiles) .npmrc などの設定ファイル。コマンドの終了後に削除される
SSH 鍵を使う(sshIdentity) git push など。秘密鍵はファイルにもならず、ssh-agent 経由で使われる

たとえば、GitHub の操作に gh コマンドを使う場合は、Vault に登録したトークンを GH_TOKEN として渡します。

コマンドを実行するときのホームディレクトリは、プロジェクトのフォルダとは別に用意されます。git の設定やシェルの設定ファイルなど、すべてのプロジェクトで共通に使いたいファイルは、banto 全体の設定の「Shell のホーム」で指定できます。