OpenShell は OpenClaw 用のマネージドサンドボックスバックエンドです。Docker コンテナをローカルで実行する代わりに、OpenClaw はサンドボックスのライフサイクルをDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openshell CLI に委譲し、
SSH ベースのコマンド実行を備えたリモート環境をプロビジョニングします。
OpenShell Plugin は、汎用 SSH バックエンドと同じコア SSH トランスポートとリモートファイルシステム
ブリッジを再利用します。さらに、
OpenShell 固有のライフサイクル(sandbox create/get/delete、sandbox ssh-config)と、任意の mirror ワークスペースモードを追加します。
前提条件
openshellCLI がインストールされ、PATH上にあること(またはplugins.entries.openshell.config.commandでカスタムパスを設定)- サンドボックスアクセス権を持つ OpenShell アカウント
- ホスト上で OpenClaw Gateway が実行中であること
クイックスタート
- Plugin を有効化し、サンドボックスバックエンドを設定します。
- Gateway を再起動します。次の agent ターンで、OpenClaw は OpenShell サンドボックスを作成し、ツール実行をそこにルーティングします。
- 確認します。
ワークスペースモード
これは OpenShell を使用する際の最も重要な判断です。mirror
ローカルワークスペースを正本として維持したい場合は、plugins.entries.openshell.config.mode: "mirror" を使用します。
動作:
execの前に、OpenClaw はローカルワークスペースを OpenShell サンドボックスに同期します。execの後に、OpenClaw はリモートワークスペースをローカルワークスペースへ同期します。- ファイルツールは引き続きサンドボックスブリッジ経由で動作しますが、ターン間ではローカルワークスペースが 真実のソースのままです。
- OpenClaw の外部でファイルをローカル編集し、その変更をサンドボックスで自動的に見えるようにしたい。
- OpenShell サンドボックスを Docker バックエンドにできるだけ近い挙動にしたい。
- 各 exec ターン後に、ホストワークスペースへサンドボックス内の書き込みを反映したい。
remote
OpenShell ワークスペースを正本にしたい場合は、plugins.entries.openshell.config.mode: "remote" を使用します。
動作:
- サンドボックスが最初に作成されるとき、OpenClaw はローカルワークスペースからリモートワークスペースへ 一度だけシードします。
- その後、
exec、read、write、edit、apply_patchは リモートの OpenShell ワークスペースに対して直接動作します。 - OpenClaw はリモートの変更をローカルワークスペースに同期しません。
- ファイルツールとメディアツールはサンドボックスブリッジ経由で読み取るため、プロンプト時のメディア読み取りは引き続き機能します。
- サンドボックスを主にリモート側で維持したい。
- ターンごとの同期オーバーヘッドを下げたい。
- ホストローカルの編集でリモートサンドボックス状態が暗黙的に上書きされることを避けたい。
モードの選択
mirror | remote | |
|---|---|---|
| 正本ワークスペース | ローカルホスト | リモート OpenShell |
| 同期方向 | 双方向(各 exec) | 1 回限りのシード |
| ターンごとのオーバーヘッド | 高い(アップロード + ダウンロード) | 低い(直接リモート操作) |
| ローカル編集は見えるか? | はい、次の exec で | いいえ、再作成まで |
| 最適な用途 | 開発ワークフロー | 長時間実行 agents、CI |
設定リファレンス
すべての OpenShell 設定はplugins.entries.openshell.config 配下にあります。
| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
mode | "mirror" または "remote" | "mirror" | ワークスペース同期モード |
command | string | "openshell" | openshell CLI のパスまたは名前 |
from | string | "openclaw" | 初回作成時のサンドボックスソース |
gateway | string | — | OpenShell gateway 名(--gateway) |
gatewayEndpoint | string | — | OpenShell gateway エンドポイント URL(--gateway-endpoint) |
policy | string | — | サンドボックス作成用の OpenShell ポリシー ID |
providers | string[] | [] | サンドボックス作成時にアタッチするプロバイダー名 |
gpu | boolean | false | GPU リソースを要求する |
autoProviders | boolean | true | サンドボックス作成時に --auto-providers を渡す |
remoteWorkspaceDir | string | "/sandbox" | サンドボックス内の主要な書き込み可能ワークスペース |
remoteAgentWorkspaceDir | string | "/agent" | agent ワークスペースのマウントパス(読み取り専用アクセス用) |
timeoutSeconds | number | 120 | openshell CLI 操作のタイムアウト |
mode、scope、workspaceAccess)は、他のバックエンドと同様に
agents.defaults.sandbox 配下で設定します。完全なマトリクスについては
サンドボックス化を参照してください。
例
最小限の remote セットアップ
GPU 付き mirror モード
カスタム gateway を使う agent ごとの OpenShell
ライフサイクル管理
OpenShell サンドボックスは通常のサンドボックス CLI で管理します。remote モードでは、再作成が特に重要です。そのスコープの正本である
リモートワークスペースを削除します。次回使用時に、ローカルワークスペースから新しいリモートワークスペースがシードされます。
mirror モードでは、ローカルワークスペースが正本のままなので、再作成は主にリモート実行環境をリセットします。
再作成が必要な場合
次のいずれかを変更した後は再作成してください。agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
セキュリティ強化
OpenShell はワークスペースのルート fd を固定し、各読み取りの前にサンドボックス ID を再確認するため、 シンボリックリンクの差し替えやワークスペースの再マウントによって、意図したリモートワークスペース外へ読み取りがリダイレクトされることはありません。現在の制限
- サンドボックスブラウザーは OpenShell バックエンドではサポートされていません。
sandbox.docker.bindsは OpenShell には適用されません。sandbox.docker.*配下の Docker 固有のランタイムノブは Docker バックエンドにのみ適用されます。
仕組み
- OpenClaw は
openshell sandbox createを呼び出します(設定に応じて--from、--gateway、--policy、--providers、--gpuフラグを指定)。 - OpenClaw は
openshell sandbox ssh-config <name>を呼び出して、サンドボックスの SSH 接続 詳細を取得します。 - コアは SSH 設定を一時ファイルに書き込み、汎用 SSH バックエンドと同じリモートファイルシステムブリッジを使って SSH セッションを開きます。
mirrorモードの場合: exec の前にローカルからリモートへ同期し、実行し、exec 後に同期して戻します。remoteモードの場合: 作成時に一度シードし、その後はリモート ワークスペースで直接動作します。
関連
- サンドボックス化 — モード、スコープ、バックエンド比較
- サンドボックス vs ツールポリシー vs Elevated — ブロックされたツールのデバッグ
- Multi-Agent サンドボックスとツール — agent ごとのオーバーライド
- サンドボックス CLI —
openclaw sandboxコマンド