O OpenShell é um backend de sandbox gerenciado para OpenClaw. Em vez de executar contêineres Docker localmente, o OpenClaw delega o ciclo de vida do sandbox à CLIDocumentation 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,
que provisiona ambientes remotos com execução de comandos baseada em SSH.
O Plugin OpenShell reutiliza o mesmo transporte SSH central e a ponte de sistema de arquivos
remoto que o backend SSH genérico. Ele adiciona
ciclo de vida específico do OpenShell (sandbox create/get/delete, sandbox ssh-config)
e um modo opcional de workspace mirror.
Pré-requisitos
- A CLI
openshellinstalada e noPATH(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
- Habilite o Plugin e defina o backend de sandbox:
- Reinicie o Gateway. No próximo turno do agente, o OpenClaw cria um sandbox OpenShell e roteia a execução de ferramentas por ele.
- Verifique:
Modos de workspace
Esta é a decisão mais importante ao usar o OpenShell.mirror
Use plugins.entries.openshell.config.mode: "mirror" quando quiser que o workspace
local permaneça canônico.
Comportamento:
- Antes de
exec, o OpenClaw sincroniza o workspace local para o sandbox OpenShell. - Depois de
exec, o OpenClaw sincroniza o workspace remoto de volta para o workspace local. - As ferramentas de arquivo ainda operam pela ponte de sandbox, mas o workspace local permanece a fonte da verdade entre turnos.
- Você edita arquivos localmente fora do OpenClaw e quer que essas alterações fiquem visíveis no sandbox automaticamente.
- Você quer que o sandbox OpenShell se comporte o máximo possível como o backend Docker.
- Você quer 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 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 no workspace remoto OpenShell. - O OpenClaw não sincroniza alterações remotas de volta para o workspace local.
- Leituras de mídia em tempo de prompt ainda funcionam porque as ferramentas de arquivo e mídia leem pela ponte de sandbox.
- O sandbox deve existir principalmente no lado remoto.
- Você quer menor sobrecarga de sincronização por turno.
- Você não quer que edições locais do host sobrescrevam silenciosamente o estado do sandbox remoto.
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é recriar |
| Ideal para | Fluxos de desenvolvimento | Agentes de longa duração, CI |
Referência de configuração
Toda 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 inicial |
gateway | string | — | Nome do gateway OpenShell (--gateway) |
gatewayEndpoint | string | — | URL do endpoint do gateway OpenShell (--gateway-endpoint) |
policy | string | — | ID da política OpenShell para criação do sandbox |
providers | string[] | [] | Nomes de provedores a anexar quando o sandbox for criado |
gpu | boolean | false | Solicitar recursos de GPU |
autoProviders | boolean | true | Passar --auto-providers durante a criação do sandbox |
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. Veja
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, recriar é especialmente importante: ele exclui o workspace
remoto canônico desse escopo. O próximo uso inicializa um novo workspace remoto a partir
do workspace local.
Para o modo mirror, recriar 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
Reforço de segurança
O OpenShell fixa o fd raiz do workspace e verifica novamente a identidade do sandbox antes de cada leitura, então trocas de symlink ou um workspace remontado não conseguem redirecionar leituras para fora do workspace remoto pretendido.Limitações atuais
- O navegador de sandbox não é compatível com o backend OpenShell.
sandbox.docker.bindsnão se aplica ao OpenShell.- Ajustes de runtime específicos do 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 que o backend SSH genérico.
- No modo
mirror: sincroniza 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.
Relacionado
- Sandboxing — modos, escopos e comparação de 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