OpenShell
OpenShell é um backend de sandbox gerenciado para o OpenClaw. Em vez de executar contêineres Docker localmente, o OpenClaw delega o ciclo de vida do sandbox para a CLIopenshell,
que provisiona ambientes remotos com execução de comandos baseada em SSH.
O plugin OpenShell reutiliza o mesmo transporte SSH principal e a mesma ponte de sistema de arquivos remoto
do backend SSH genérico. Ele adiciona
ciclo de vida específico do OpenShell (sandbox create/get/delete, sandbox ssh-config)
e um modo de workspace mirror opcional.
Pré-requisitos
- A CLI
openshellinstalada e disponível emPATH(ou defina um caminho personalizado viaplugins.entries.openshell.config.command) - Uma conta OpenShell com acesso a sandbox
- OpenClaw Gateway em execução no host
Início rápido
- Ative o plugin e defina o backend de sandbox:
- Reinicie o Gateway. No próximo turno do agente, o OpenClaw criará um sandbox OpenShell e roteará a execução das ferramentas por ele.
- Verifique:
Modos de workspace
Esta é a decisão mais importante ao usar OpenShell.mirror
Use plugins.entries.openshell.config.mode: "mirror" quando quiser que o workspace
local continue sendo o canônico.
Comportamento:
- Antes de
exec, o OpenClaw sincroniza o workspace local com o sandbox OpenShell. - Depois de
exec, o OpenClaw sincroniza o workspace remoto de volta para o workspace local. - As ferramentas de arquivo ainda operam por meio da ponte do sandbox, mas o workspace local permanece como fonte da verdade entre turnos.
- Você editar arquivos localmente fora do OpenClaw e quiser que essas alterações fiquem visíveis no sandbox automaticamente.
- Você quiser que o sandbox OpenShell se comporte o máximo possível como o backend Docker.
- Você quiser que o workspace do host reflita as gravações do sandbox após cada turno de exec.
remote
Use plugins.entries.openshell.config.mode: "remote" quando quiser que o
workspace OpenShell se torne o canônico.
Comportamento:
- Quando o sandbox é criado pela primeira vez, o OpenClaw inicializa o workspace remoto a partir do workspace local uma vez.
- Depois disso,
exec,read,write,editeapply_patchoperam diretamente sobre o workspace remoto do OpenShell. - O OpenClaw não sincroniza alterações remotas de volta para o workspace local.
- Leituras de mídia no momento do prompt continuam funcionando porque ferramentas de arquivo e mídia leem por meio da ponte do sandbox.
- O sandbox deve viver principalmente no lado remoto.
- Você quer menor sobrecarga de sincronização por turno.
- Você não quer que edições locais no host sobrescrevam silenciosamente o estado remoto do sandbox.
openclaw sandbox recreate para reinicializar.
Escolhendo um modo
mirror | remote | |
|---|---|---|
| Workspace canônico | Host local | OpenShell remoto |
| Direção da sincronização | Bidirecional (cada exec) | Inicialização única |
| Sobrecarga por turno | Maior (upload + download) | Menor (operações remotas diretas) |
| Edições locais visíveis? | Sim, no próximo exec | Não, até recreate |
| Ideal para | Fluxos de trabalho de desenvolvimento | Agentes de longa duração, CI |
Referência de configuração
Toda a configuração do OpenShell fica emplugins.entries.openshell.config:
| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
mode | "mirror" ou "remote" | "mirror" | Modo de sincronização do workspace |
command | string | "openshell" | Caminho ou nome da CLI openshell |
from | string | "openclaw" | Origem do sandbox para criação na primeira vez |
gateway | string | — | Nome do gateway OpenShell (--gateway) |
gatewayEndpoint | string | — | URL do endpoint do gateway OpenShell (--gateway-endpoint) |
policy | string | — | ID da policy OpenShell para criação do sandbox |
providers | string[] | [] | Nomes de providers a anexar quando o sandbox é criado |
gpu | boolean | false | Solicita recursos de GPU |
autoProviders | boolean | true | Passa --auto-providers durante sandbox create |
remoteWorkspaceDir | string | "/sandbox" | Workspace gravável principal dentro do sandbox |
remoteAgentWorkspaceDir | string | "/agent" | Caminho de montagem do workspace do agente (para acesso somente leitura) |
timeoutSeconds | number | 120 | Timeout para operações da CLI openshell |
mode, scope, workspaceAccess) são configuradas em
agents.defaults.sandbox como em qualquer backend. Consulte
Sandboxing para a matriz completa.
Exemplos
Configuração remota mínima
Modo mirror com GPU
OpenShell por agente com gateway personalizado
Gerenciamento do ciclo de vida
Sandboxes OpenShell são gerenciados pela CLI normal de sandbox:remote, recreate é especialmente importante: ele exclui o
workspace remoto canônico para esse escopo. No próximo uso, um novo workspace remoto é inicializado a partir
do workspace local.
Para o modo mirror, recreate principalmente redefine o ambiente de execução remoto porque
o workspace local permanece canônico.
Quando recriar
Recrie após alterar qualquer um destes:agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
Limitações atuais
- O navegador do sandbox não é compatível com o backend OpenShell.
sandbox.docker.bindsnão se aplica ao OpenShell.- Parâmetros de runtime específicos de Docker em
sandbox.docker.*se aplicam apenas ao backend Docker.
Como funciona
- O OpenClaw chama
openshell sandbox create(com flags--from,--gateway,--policy,--providers,--gpuconforme configurado). - O OpenClaw chama
openshell sandbox ssh-config <name>para obter detalhes de conexão SSH do sandbox. - O núcleo grava a configuração SSH em um arquivo temporário e abre uma sessão SSH usando a mesma ponte de sistema de arquivos remoto do backend SSH genérico.
- No modo
mirror: sincroniza de local para remoto antes de exec, executa, sincroniza de volta após exec. - No modo
remote: inicializa uma vez na criação e então opera diretamente no workspace remoto.
Consulte também
- Sandboxing — modos, escopos e comparação entre backends
- Sandbox vs Tool Policy vs Elevated — depuração de ferramentas bloqueadas
- Multi-Agent Sandbox and Tools — substituições por agente
- Sandbox CLI — comandos
openclaw sandbox