OpenShell
OpenShell ist ein verwaltetes Sandbox-Backend für OpenClaw. Anstatt Docker- Container lokal auszuführen, delegiert OpenClaw den Sandbox-Lifecycle an dieopenshell-CLI,
die Remote-Umgebungen mit SSH-basierter Befehlsausführung bereitstellt.
Das OpenShell-Plugin verwendet denselben Core-SSH-Transport und dieselbe Bridge für das Remote-Dateisystem
wie das generische SSH backend. Es fügt
OpenShell-spezifischen Lifecycle hinzu (sandbox create/get/delete, sandbox ssh-config)
sowie einen optionalen mirror-Workspace-Modus.
Voraussetzungen
- Die
openshell-CLI muss installiert und inPATHverfügbar sein (oder setzen Sie einen benutzerdefinierten Pfad überplugins.entries.openshell.config.command) - Ein OpenShell-Konto mit Zugriff auf Sandboxes
- OpenClaw Gateway läuft auf dem Host
Schnellstart
- Aktivieren Sie das Plugin und setzen Sie das Sandbox-Backend:
- Starten Sie das Gateway neu. Beim nächsten Agent-Zug erstellt OpenClaw eine OpenShell- Sandbox und leitet die Tool-Ausführung durch sie.
- Verifizieren Sie dies:
Workspace-Modi
Dies ist die wichtigste Entscheidung bei der Verwendung von OpenShell.mirror
Verwenden Sie plugins.entries.openshell.config.mode: "mirror", wenn Sie möchten, dass der lokale
Workspace kanonisch bleibt.
Verhalten:
- Vor
execsynchronisiert OpenClaw den lokalen Workspace in die OpenShell-Sandbox. - Nach
execsynchronisiert OpenClaw den Remote-Workspace zurück in den lokalen Workspace. - Datei-Tools arbeiten weiterhin über die Sandbox-Bridge, aber der lokale Workspace bleibt zwischen den Zügen die Quelle der Wahrheit.
- Sie bearbeiten Dateien lokal außerhalb von OpenClaw und möchten, dass diese Änderungen in der Sandbox automatisch sichtbar werden.
- Sie möchten, dass sich die OpenShell-Sandbox so ähnlich wie das Docker-Backend wie möglich verhält.
- Sie möchten, dass der Host-Workspace Sandbox-Schreibvorgänge nach jedem
exec-Zug widerspiegelt.
exec.
remote
Verwenden Sie plugins.entries.openshell.config.mode: "remote", wenn Sie möchten, dass der
OpenShell-Workspace kanonisch wird.
Verhalten:
- Wenn die Sandbox zum ersten Mal erstellt wird, initialisiert OpenClaw den Remote-Workspace einmalig aus dem lokalen Workspace.
- Danach arbeiten
exec,read,write,editundapply_patchdirekt gegen den Remote-OpenShell-Workspace. - OpenClaw synchronisiert nicht Remote-Änderungen zurück in den lokalen Workspace.
- Medienlesevorgänge zur Prompt-Zeit funktionieren weiterhin, weil Datei- und Medien-Tools über die Sandbox-Bridge lesen.
- Die Sandbox soll hauptsächlich auf der Remote-Seite leben.
- Sie möchten geringeren Synchronisations-Overhead pro Zug.
- Sie möchten nicht, dass host-lokale Änderungen den Zustand der Remote-Sandbox stillschweigend überschreiben.
openclaw sandbox recreate, um erneut zu initialisieren.
Einen Modus wählen
mirror | remote | |
|---|---|---|
| Kanonischer Workspace | Lokaler Host | Remote OpenShell |
| Synchronisationsrichtung | Bidirektional (jedes exec) | Einmaliger Seed |
| Overhead pro Zug | Höher (Upload + Download) | Geringer (direkte Remote-Operationen) |
| Lokale Änderungen sichtbar? | Ja, beim nächsten exec | Nein, bis recreate |
| Am besten für | Entwicklungs-Workflows | Langlebige Agenten, CI |
Konfigurationsreferenz
Die gesamte OpenShell-Konfiguration befindet sich unterplugins.entries.openshell.config:
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
mode | "mirror" oder "remote" | "mirror" | Workspace-Synchronisationsmodus |
command | string | "openshell" | Pfad oder Name der openshell-CLI |
from | string | "openclaw" | Sandbox-Quelle für die erstmalige Erstellung |
gateway | string | — | OpenShell-Gateway-Name (--gateway) |
gatewayEndpoint | string | — | OpenShell-Gateway-Endpunkt-URL (--gateway-endpoint) |
policy | string | — | OpenShell-Policy-ID für die Sandbox-Erstellung |
providers | string[] | [] | Provider-Namen, die bei der Erstellung der Sandbox angehängt werden |
gpu | boolean | false | GPU-Ressourcen anfordern |
autoProviders | boolean | true | --auto-providers während sandbox create übergeben |
remoteWorkspaceDir | string | "/sandbox" | Primärer beschreibbarer Workspace innerhalb der Sandbox |
remoteAgentWorkspaceDir | string | "/agent" | Mount-Pfad des Agent-Workspaces (für schreibgeschützten Zugriff) |
timeoutSeconds | number | 120 | Timeout für openshell-CLI-Operationen |
mode, scope, workspaceAccess) werden unter
agents.defaults.sandbox konfiguriert wie bei jedem Backend. Siehe
Sandboxing für die vollständige Matrix.
Beispiele
Minimales Remote-Setup
Mirror-Modus mit GPU
OpenShell pro Agent mit benutzerdefiniertem Gateway
Lifecycle-Verwaltung
OpenShell-Sandboxes werden über die normale Sandbox-CLI verwaltet:remote ist recreate besonders wichtig: Er löscht den kanonischen
Remote-Workspace für diesen Bereich. Beim nächsten Gebrauch wird ein frischer Remote-Workspace aus
dem lokalen Workspace initialisiert.
Für den Modus mirror setzt recreate hauptsächlich die Remote-Ausführungsumgebung zurück, weil
der lokale Workspace kanonisch bleibt.
Wann neu erstellen
Erstellen Sie neu, nachdem Sie einen dieser Werte geändert haben:agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
Aktuelle Einschränkungen
- Sandbox-Browser wird auf dem OpenShell-Backend nicht unterstützt.
sandbox.docker.bindsgilt nicht für OpenShell.- Docker-spezifische Runtime-Knobs unter
sandbox.docker.*gelten nur für das Docker- Backend.
So funktioniert es
- OpenClaw ruft
openshell sandbox createauf (mit den Flags--from,--gateway,--policy,--providers,--gpugemäß Konfiguration). - OpenClaw ruft
openshell sandbox ssh-config <name>auf, um SSH-Verbindungs- details für die Sandbox zu erhalten. - Der Core schreibt die SSH-Konfiguration in eine temporäre Datei und öffnet eine SSH-Sitzung unter Verwendung derselben Bridge für das Remote-Dateisystem wie das generische SSH-Backend.
- Im Modus
mirror: lokal nach Remote vorexecsynchronisieren, ausführen, nachexeczurück synchronisieren. - Im Modus
remote: einmal beim Erstellen initialisieren und dann direkt auf dem Remote- Workspace arbeiten.
Siehe auch
- Sandboxing — Modi, Bereiche und Backend-Vergleich
- Sandbox vs Tool Policy vs Elevated — blockierte Tools debuggen
- Multi-Agent Sandbox and Tools — Überschreibungen pro Agent
- Sandbox CLI —
openclaw sandbox-Befehle