OpenShell はマネージドサンドボックスバックエンドです。Docker コンテナを
ローカルで実行する代わりに、OpenClaw はサンドボックスのライフサイクルを openshell CLI に委任し、
この CLI がリモート環境をプロビジョニングして SSH 経由でコマンドを実行します。
このプラグインは、汎用の SSH バックエンドと同じ SSH トランスポートおよびリモートファイルシステムブリッジを再利用し、OpenShell の
ライフサイクル(sandbox create/get/delete/ssh-config)と、オプションの mirror
ワークスペース同期モードを追加します。
前提条件
- OpenShell プラグインがインストール済み(
openclaw plugins install @openclaw/openshell-sandbox)
openshell CLI が PATH に存在(または
plugins.entries.openshell.config.command でカスタムパスを指定)
- サンドボックスへのアクセス権を持つ OpenShell アカウント
- ホスト上で OpenClaw Gateway が実行中
クイックスタート
Gateway を再起動します。次のエージェントターンで OpenClaw が OpenShell
サンドボックスを作成し、ツールの実行をそこにルーティングします。次のコマンドで確認します。
ワークスペースモード
これは OpenShell に関する最も重要な選択です。
mirror(デフォルト)
plugins.entries.openshell.config.mode: "mirror" は ローカルワークスペースを
正規のワークスペースとして維持します。
exec の前に、OpenClaw はローカルワークスペースをサンドボックスへ同期します。
exec の後に、OpenClaw はリモートワークスペースをローカルへ同期します。
- ファイルツールはサンドボックスブリッジを経由しますが、ターン間ではローカルが
信頼できる情報源として維持されます。
開発ワークフローに最適です。OpenClaw 外部で行ったローカル編集は次回の
実行時に反映され、サンドボックスは Docker バックエンドに近い動作をします。
トレードオフ:実行ターンごとにアップロードとダウンロードのコストが発生します。
remote
mode: "remote" は OpenShell ワークスペースを正規のワークスペースにします。
- サンドボックスの初回作成時に、OpenClaw はローカルからリモートワークスペースへ
一度だけ初期データを投入します。
- その後、
exec、read、write、edit、apply_patch は
リモートワークスペースを直接操作します。OpenClaw はリモートでの変更を
ローカルへ同期しません。
- プロンプト処理時のメディア読み取りも引き続き機能します(ファイル/メディアツールは
サンドボックスブリッジ経由で読み取ります)。
長時間稼働するエージェントや CI に最適です。ターンごとのオーバーヘッドが低く、
ホスト側のローカル編集によってリモートの状態が暗黙に上書きされることもありません。
初期データ投入後に OpenClaw 外部からホスト上のファイルを編集しても、リモートサンドボックスには反映されません。再度初期データを投入するには openclaw sandbox recreate を実行してください。
モードの選択
設定リファレンス
すべての OpenShell 設定は plugins.entries.openshell.config 配下にあります。
remoteWorkspaceDir と remoteAgentWorkspaceDir は絶対パスでなければならず、
マネージドルート /sandbox または /agent の配下に収まる必要があります。それ以外の絶対パスは
拒否されます。
サンドボックスレベルの設定(mode、scope、workspaceAccess)は、他のバックエンドと同様に
agents.defaults.sandbox 配下にあります。完全な対応表については
サンドボックス化を参照してください。
最小構成のリモートセットアップ
GPU を使用する mirror モード
カスタム Gateway を使用するエージェント単位の OpenShell
ライフサイクル管理
remote モードでは、再作成が特に重要です。そのスコープの正規の
リモートワークスペースが削除され、次回使用時にローカルから新しい初期データが
投入されます。mirror モードではローカルが正規の状態として維持されるため、再作成は主にリモート実行
環境をリセットします。
次のいずれかを変更した後は再作成してください。
agents.defaults.sandbox.backend
plugins.entries.openshell.config.from
plugins.entries.openshell.config.mode
plugins.entries.openshell.config.policy
セキュリティ強化
mirror モードのファイルシステムブリッジはローカルワークスペースのルートを固定し、
読み取り、書き込み、ディレクトリ作成、削除、名前変更の前に毎回
正規パスを realpath で再確認し、パス途中のシンボリックリンクを拒否します。シンボリックリンクの差し替えやワークスペースの再マウントによって、
ミラーリングされたツリーの外部へファイルアクセスをリダイレクトすることはできません。
現在の制限事項
- OpenShell バックエンドではサンドボックスブラウザはサポートされません。
sandbox.docker.binds は OpenShell には適用されません。バインドが設定されている場合、
サンドボックスの作成は失敗します。
sandbox.docker.* 配下の Docker 固有のランタイム設定(env を除く)は、
Docker バックエンドにのみ適用されます。
仕組み
- OpenClaw はサンドボックス名に対して
sandbox get を実行します(設定されている
--gateway/--gateway-endpoint を使用)。失敗した場合は
sandbox create でサンドボックスを作成し、--name、--from、設定されている場合は --policy、有効な場合は --gpu、
--auto-providers/--no-auto-providers、および設定された各プロバイダーにつき 1 つの
--provider フラグを渡します。
- OpenClaw はサンドボックス名に対して
sandbox ssh-config を実行し、SSH
接続情報を取得します。
- コアは SSH 設定を一時ファイルへ書き込み、汎用 SSH バックエンドと同じ
リモートファイルシステムブリッジ経由で SSH セッションを開きます。
mirror モードでは、実行前にローカルからリモートへ同期し、実行後に同期して戻します。
remote モードでは、作成時に一度だけ初期データを投入し、その後はリモート
ワークスペースを直接操作します。
関連項目