Skip to main content
OpenShell è un backend sandbox gestito: invece di eseguire container Docker localmente, OpenClaw delega il ciclo di vita della sandbox alla CLI openshell, che predispone ambienti remoti ed esegue comandi tramite SSH. Il plugin riutilizza lo stesso trasporto SSH e lo stesso bridge del filesystem remoto del backend SSH generico e aggiunge la gestione del ciclo di vita di OpenShell (sandbox create/get/delete/ssh-config), oltre a una modalità opzionale mirror per la sincronizzazione dell’area di lavoro.

Prerequisiti

  • Plugin OpenShell installato (openclaw plugins install @openclaw/openshell-sandbox)
  • CLI openshell disponibile in PATH (oppure un percorso personalizzato tramite plugins.entries.openshell.config.command)
  • Un account OpenShell con accesso alle sandbox
  • Gateway OpenClaw in esecuzione sull’host

Avvio rapido

Riavvia il Gateway. Al turno successivo dell’agente, OpenClaw crea una sandbox OpenShell e vi instrada l’esecuzione degli strumenti. Verifica con:

Modalità dell’area di lavoro

Questa è la decisione più importante relativa a OpenShell.

mirror (predefinita)

plugins.entries.openshell.config.mode: "mirror" mantiene canonica l’area di lavoro locale:
  • Prima di exec, OpenClaw sincronizza l’area di lavoro locale nella sandbox.
  • Dopo exec, OpenClaw sincronizza nuovamente in locale l’area di lavoro remota.
  • Gli strumenti per i file passano attraverso il bridge della sandbox, ma tra un turno e l’altro la copia locale rimane la fonte autorevole.
Ideale per i flussi di lavoro di sviluppo: le modifiche locali effettuate al di fuori di OpenClaw vengono rilevate alla successiva esecuzione e il comportamento della sandbox è simile a quello del backend Docker. Compromesso: costo di caricamento e scaricamento a ogni turno di esecuzione.

remote

mode: "remote" rende canonica l’area di lavoro OpenShell:
  • Alla prima creazione della sandbox, OpenClaw inizializza una sola volta l’area di lavoro remota a partire da quella locale.
  • Successivamente, exec, read, write, edit e apply_patch operano direttamente sull’area di lavoro remota. OpenClaw non sincronizza le modifiche remote in locale.
  • La lettura dei contenuti multimediali durante la generazione del prompt continua a funzionare (gli strumenti per file e contenuti multimediali leggono tramite il bridge della sandbox).
Ideale per agenti di lunga durata e CI: minore sovraccarico per turno e le modifiche locali sull’host non possono sovrascrivere silenziosamente lo stato remoto.
Le modifiche ai file effettuate sull’host al di fuori di OpenClaw dopo l’inizializzazione non sono visibili alla sandbox remota. Esegui openclaw sandbox recreate per inizializzarla nuovamente.

Scelta della modalità

Riferimento della configurazione

Tutta la configurazione di OpenShell si trova in plugins.entries.openshell.config: remoteWorkspaceDir e remoteAgentWorkspaceDir devono essere percorsi assoluti e rimanere nelle radici gestite /sandbox o /agent; gli altri percorsi assoluti vengono rifiutati. Le impostazioni a livello di sandbox (mode, scope, workspaceAccess) si trovano in agents.defaults.sandbox, come per qualsiasi backend. Consulta Gestione delle sandbox per la matrice completa.

Esempi

Configurazione remota minima

Modalità mirror con GPU

OpenShell per agente con gateway personalizzato

Gestione del ciclo di vita

Per la modalità remote, la ricreazione è particolarmente importante: elimina l’area di lavoro remota canonica per l’ambito specificato e, all’utilizzo successivo, ne inizializza una nuova a partire da quella locale. Per la modalità mirror, la ricreazione reimposta principalmente l’ambiente di esecuzione remoto, poiché la copia locale rimane canonica. Ricrea dopo aver modificato uno dei seguenti elementi:
  • agents.defaults.sandbox.backend
  • plugins.entries.openshell.config.from
  • plugins.entries.openshell.config.mode
  • plugins.entries.openshell.config.policy

Rafforzamento della sicurezza

Il bridge del filesystem in modalità mirror vincola la radice dell’area di lavoro locale e ricontrolla i percorsi canonici (tramite realpath) prima di ogni lettura, scrittura, creazione di directory, rimozione e rinomina, rifiutando i collegamenti simbolici all’interno del percorso. La sostituzione di un collegamento simbolico o il rimontaggio dell’area di lavoro non possono reindirizzare l’accesso ai file al di fuori dell’albero replicato.

Limitazioni attuali

  • Il browser della sandbox non è supportato dal backend OpenShell.
  • sandbox.docker.binds non si applica a OpenShell; la creazione della sandbox non riesce se sono configurati dei bind.
  • Le opzioni di runtime specifiche di Docker in sandbox.docker.* (tranne env) si applicano solo al backend Docker.

Funzionamento

  1. OpenClaw esegue sandbox get per il nome della sandbox (con gli eventuali --gateway/--gateway-endpoint configurati); se l’operazione non riesce, ne crea una con sandbox create, passando --name, --from, --policy quando impostato, --gpu quando abilitato, --auto-providers/--no-auto-providers e un flag --provider per ogni provider configurato.
  2. OpenClaw esegue sandbox ssh-config per il nome della sandbox per recuperare i dettagli della connessione SSH.
  3. Il core scrive la configurazione SSH in un file temporaneo e apre una sessione SSH tramite lo stesso bridge del filesystem remoto del backend SSH generico.
  4. In modalità mirror: sincronizza dal locale al remoto prima dell’esecuzione, esegue il comando, quindi sincronizza nuovamente dal remoto al locale.
  5. In modalità remote: inizializza una volta alla creazione, quindi opera direttamente sull’area di lavoro remota.

Argomenti correlati