メインコンテンツへスキップ
ワークスペースでシェル コマンドを実行します。 process によるフォアグラウンド + バックグラウンド実行をサポートします。 process が許可されていない場合、exec は同期的に実行され、yieldMs/background は無視されます。 バックグラウンド セッションはエージェントごとにスコープが定められています。 process は、同じエージェントからのセッションのみを参照します。

パラメータ

  • command (必須)
  • workdir (デフォルトは cwd)
  • env (キー/値の上書き)
  • yieldMs (デフォルト 10000): 遅延後の自動背景
  • background (ブール値): すぐにバックグラウンドにします
  • timeout (秒、デフォルトは 1800): 期限切れで強制終了
  • pty (ブール値): 利用可能な場合は疑似端末で実行します (TTY のみの CLI、コーディング エージェント、端末 UI)
  • host (sandbox | gateway | node): 実行場所
  • security (deny | allowlist | full): gateway/node の強制モード
  • ask (off | on-miss | always): gateway/node の承認プロンプト
  • node (文字列): host=node のノード ID/名前
  • elevated (ブール値): 昇格モードを要求します (ゲートウェイ ホスト)。 security=full は、昇格が full に解決される場合にのみ強制されます。
注:- host のデフォルトは sandbox です。
  • サンドボックスがオフの場合 (ホスト上で実行がすでに実行されている場合)、elevated は無視されます。
  • gateway/node の承認は ~/.openclaw/exec-approvals.json によって制御されます。
  • node にはペアリングされたノード (コンパニオン アプリまたはヘッドレス ノード ホスト) が必要です。
  • 複数のノードが使用可能な場合は、exec.node または tools.exec.node を設定して 1 つを選択します。
  • Windows 以外のホストでは、exec は設定時に SHELL を使用します。 SHELLfish の場合、bash (または sh) が優先されます。 PATH から、fish と互換性のないスクリプトを回避し、どちらも存在しない場合は SHELL に戻ります。
  • Windows ホストでは、exec は PowerShell 7 (pwsh) 検出を優先します (Program Files、ProgramW6432、PATH)。 その後、Windows PowerShell 5.1 に戻ります。
  • ホストの実行 (gateway/node) は env.PATH を拒否し、ローダーはオーバーライド (LD_*/DYLD_*) を実行します。 バイナリのハイジャックやコードの挿入を防ぎます。
  • OpenClaw は、生成されたコマンド環境 (PTY およびサンドボックス実行を含む) に OPENCLAW_SHELL=exec を設定するため、シェル/プロファイル ルールは実行ツール コンテキストを検出できます。
  • 重要: サンドボックスは デフォルトではオフになっています。サンドボックスがオフで、host=sandbox が明示的に設定されている場合 構成/要求された場合、exec はゲートウェイ ホスト上でサイレントに実行されるのではなく、フェール クローズされるようになりました。サンドボックスを有効にするか、承認付きの host=gateway を使用します。
  • スクリプトのプリフライト チェック (一般的な Python/Node シェル構文の間違い) は、ファイル内のファイルのみを検査します。 有効な workdir 境界。スクリプト パスが workdir の外側で解決される場合、プリフライトはスキップされます。 そのファイル。

構成- tools.exec.notifyOnExit (デフォルト: true): true の場合、バックグラウンド実行セッションはシステム イベントをキューに入れ、終了時にハートビートを要求します

  • tools.exec.approvalRunningNoticeMs (デフォルト: 10000): 承認ゲート型 exec がこれより長く実行される場合、単一の「実行中」通知を発行します (0 は無効になります)。
  • tools.exec.host (デフォルト: sandbox)
  • tools.exec.security (デフォルト: サンドボックスの場合は deny、未設定の場合はゲートウェイ + ノードの場合は allowlist)
  • tools.exec.ask (デフォルト: on-miss)
  • tools.exec.node (デフォルト: 未設定)
  • tools.exec.pathPrepend: 実行実行のために PATH の前に追加するディレクトリのリスト (ゲートウェイ + サンドボックスのみ)。
  • tools.exec.safeBins: 明示的なホワイトリスト エントリなしで実行できる標準入力のみの安全なバイナリ。動作の詳細については、金庫 を参照してください。
  • tools.exec.safeBinTrustedDirs: safeBins パス チェックで信頼される追加の明示的なディレクトリ。 PATH エントリは自動信頼されません。組み込みのデフォルトは /bin および /usr/bin です。
  • tools.exec.safeBinProfiles: 金庫ごとのオプションのカスタム argv ポリシー (minPositionalmaxPositionalallowedValueFlagsdeniedFlags)。
例:

PATH の処理- host=gateway: ログインシェル PATH を実行環境にマージします。 env.PATH オーバーライドは

ホストの実行が拒否されました。デーモン自体は引き続き最小限の PATH で実行されます。
  • macOS: /opt/homebrew/bin/usr/local/bin/usr/bin/bin
  • Linux: /usr/local/bin/usr/bin/bin
  • host=sandbox: コンテナ内で sh -lc (ログイン シェル) を実行するため、/etc/profilePATH をリセットする可能性があります。 OpenClaw は、内部環境変数 (シェル補間なし) によるプロファイル ソースの後に env.PATH を付加します。 tools.exec.pathPrepend はここにも当てはまります。
  • host=node: 渡したブロックされていない環境オーバーライドのみがノードに送信されます。 env.PATH オーバーライドは ホストの実行が拒否され、ノード ホストによって無視されます。ノード上に追加の PATH エントリが必要な場合は、 ノードホストサービス環境 (systemd/launchd) を構成するか、標準の場所にツールをインストールします。
エージェントごとのノード バインディング (構成内のエージェント リスト インデックスを使用):
コントロール UI: [ノード] タブには、同じ設定のための小さな [実行ノード バインディング] パネルが含まれています。

セッションの上書き (/exec)

/exec を使用して、hostsecurityask、および nodeセッションごと のデフォルトを設定します。 現在の値を表示するには、引数なしで /exec を送信します。 例:
背景 + 投票:
キーを送信します (tmux スタイル):
送信 (CR のみを送信):
貼り付けます (デフォルトでは括弧で囲まれています):

apply_patch (実験的)apply_patch は、構造化された複数ファイル編集のための exec のサブツールです

明示的に有効にします。
注:
  • OpenAI/OpenAI Codex モデルでのみ利用可能です。
  • ツール ポリシーは引き続き適用されます。 allow: ["exec"]apply_patch を暗黙的に許可します。
  • 構成は tools.exec.applyPatch の下にあります。
  • tools.exec.applyPatch.workspaceOnly のデフォルトは true (ワークスペースを含む) です。意図的に apply_patch をワークスペース ディレクトリの外に書き込み/削除する場合にのみ、これを false に設定します。