OpenShell ist ein verwaltetes Sandbox-Backend für OpenClaw. Statt Docker- Container lokal auszuführen, delegiert OpenClaw den Sandbox-Lebenszyklus an dieDocumentation 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-CLI,
die Remote-Umgebungen mit SSH-basierter Befehlsausführung bereitstellt.
Das OpenShell-Plugin verwendet denselben zentralen SSH-Transport und dieselbe Remote-Dateisystem-
Bridge wie das generische SSH-Backend. Es ergänzt
OpenShell-spezifische Lebenszyklusfunktionen (sandbox create/get/delete, sandbox ssh-config)
und einen optionalen mirror-Workspace-Modus.
Voraussetzungen
- Die
openshell-CLI ist installiert und inPATHverfügbar (oder Sie legen einen benutzerdefinierten Pfad überplugins.entries.openshell.config.commandfest) - Ein OpenShell-Konto mit Sandbox-Zugriff
- OpenClaw Gateway läuft auf dem Host
Schnellstart
- Aktivieren Sie das Plugin und legen Sie das Sandbox-Backend fest:
- Starten Sie den Gateway neu. Beim nächsten Agent-Turn erstellt OpenClaw eine OpenShell- Sandbox und leitet die Tool-Ausführung darüber.
- Prüfen Sie:
Workspace-Modi
Dies ist die wichtigste Entscheidung bei der Verwendung von OpenShell.mirror
Verwenden Sie plugins.entries.openshell.config.mode: "mirror", wenn der lokale
Workspace kanonisch bleiben soll.
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 Turns die Quelle der Wahrheit.
- Sie bearbeiten Dateien lokal außerhalb von OpenClaw und möchten, dass diese Änderungen automatisch in der Sandbox sichtbar werden.
- Sie möchten, dass sich die OpenShell-Sandbox so weit wie möglich wie das Docker-Backend verhält.
- Sie möchten, dass der Host-Workspace nach jedem Exec-Turn Schreibvorgänge aus der Sandbox widerspiegelt.
remote
Verwenden Sie plugins.entries.openshell.config.mode: "remote", wenn der
OpenShell-Workspace kanonisch werden soll.
Verhalten:
- Wenn die Sandbox erstmals erstellt wird, befüllt OpenClaw den Remote-Workspace einmalig aus dem lokalen Workspace.
- Danach arbeiten
exec,read,write,editundapply_patchdirekt gegen den Remote-Workspace von OpenShell. - OpenClaw synchronisiert Remote-Änderungen nicht zurück in den lokalen Workspace.
- Medien-Lesevorgä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 einen geringeren Synchronisierungsaufwand pro Turn.
- Sie möchten nicht, dass host-lokale Bearbeitungen den Remote-Sandbox-Zustand stillschweigend überschreiben.
Einen Modus auswählen
mirror | remote | |
|---|---|---|
| Kanonischer Workspace | Lokaler Host | Remote-OpenShell |
| Synchronisierungsrichtung | Bidirektional (jedes Exec) | Einmalige Befüllung |
| Aufwand pro Turn | Höher (Upload + Download) | Geringer (direkte Remote-Operationen) |
| Lokale Änderungen sichtbar? | Ja, beim nächsten Exec | Nein, erst nach recreate |
| Am besten geeignet für | Entwicklungsworkflows | Lang laufende Agents, CI |
Konfigurationsreferenz
Die gesamte OpenShell-Konfiguration befindet sich unterplugins.entries.openshell.config:
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
mode | "mirror" oder "remote" | "mirror" | Workspace-Synchronisierungsmodus |
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 beim Erstellen der Sandbox angehängt werden |
gpu | boolean | false | GPU-Ressourcen anfordern |
autoProviders | boolean | true | --auto-providers bei der Sandbox-Erstellung ü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 wie bei jedem Backend unter
agents.defaults.sandbox konfiguriert. Die vollständige Matrix finden Sie unter
Sandboxing.
Beispiele
Minimale Remote-Einrichtung
Mirror-Modus mit GPU
OpenShell pro Agent mit benutzerdefiniertem Gateway
Lebenszyklusverwaltung
OpenShell-Sandboxes werden über die normale Sandbox-CLI verwaltet:remote-Modus ist recreate besonders wichtig: Es löscht den kanonischen
Remote-Workspace für diesen Scope. Bei der nächsten Verwendung wird ein frischer Remote-Workspace aus
dem lokalen Workspace befüllt.
Für den mirror-Modus setzt recreate vor allem die Remote-Ausführungsumgebung zurück, weil
der lokale Workspace kanonisch bleibt.
Wann recreate verwendet werden sollte
Verwenden Sie recreate nach Änderungen an einem der folgenden Werte:agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
Sicherheitshärtung
OpenShell fixiert den Root-fd des Workspaces und prüft vor jedem Lesevorgang die Sandbox-Identität erneut, sodass Symlink-Austausche oder ein neu eingehängter Workspace Lesevorgänge nicht aus dem vorgesehenen Remote-Workspace heraus umleiten können.Aktuelle Einschränkungen
- Der Sandbox-Browser wird im OpenShell-Backend nicht unterstützt.
sandbox.docker.bindsgilt nicht für OpenShell.- Docker-spezifische Runtime-Schalter unter
sandbox.docker.*gelten nur für das Docker- Backend.
Funktionsweise
- OpenClaw ruft
openshell sandbox createauf (mit den Flags--from,--gateway,--policy,--providers,--gpuwie konfiguriert). - OpenClaw ruft
openshell sandbox ssh-config <name>auf, um SSH-Verbindungsdetails für die Sandbox abzurufen. - Der Core schreibt die SSH-Konfiguration in eine temporäre Datei und öffnet eine SSH-Sitzung über dieselbe Remote-Dateisystem-Bridge wie das generische SSH-Backend.
- Im
mirror-Modus: lokal vor exec nach remote synchronisieren, ausführen, nach exec zurück synchronisieren. - Im
remote-Modus: einmalig beim Erstellen befüllen, danach direkt auf dem Remote- Workspace arbeiten.
Verwandte Themen
- Sandboxing — Modi, Scopes und Backend-Vergleich
- Sandbox vs Tool-Policy vs Elevated — Debugging blockierter Tools
- Multi-Agent-Sandbox und Tools — Überschreibungen pro Agent
- Sandbox-CLI —
openclaw sandbox-Befehle