- Warum Claude Code im Headless-Modus eine Sandbox benötigt
- Was sich ändert, wenn man --dangerously-skip-permissions verwendet
- Wie Novitas claude-code-Vorlage auf einen Produktionsworkflow abbildet
- Checkliste für Best Practices für Claude Code Sandbox
- Häufige Fehler, die es zu vermeiden gilt
- FAQ
- Empfohlene Artikel
Die Best Practices für die Claude Code Sandbox beginnen mit einer Regel: Wenn Claude Code Dateien bearbeiten und Befehle ausführen kann, ohne dass ein Mensch jeden Schritt genehmigt, sollte es in einer isolierten Arbeitsumgebung und nicht auf einem Laptop oder einem gemeinsam genutzten CI-Runner ausgeführt werden. Das ist im Headless-Modus noch wichtiger, denn der Sinn einer Headless-Ausführung ist, dass der Agent Dateibearbeitungen, Shell-Befehle und Installationsabhängigkeiten durchführen kann, ohne auf einen menschlichen Klick auf „Genehmigen“ warten zu müssen. Novitas Leitfaden zur Claude Code Sandbox ist die Quelle der Wahrheit für die genauen Vorlagenbefehle und Flags. Dieser Artikel konzentriert sich auf das, was Teams in der Regel als Nächstes benötigen: warum Claude Code überhaupt in einer Sandbox ausgeführt werden sollte, was schiefgehen kann, wenn man es nicht tut, und welche Produktionskontrollen um die Vorlage herum hinzugefügt werden sollten, bevor sie in einen echten Workflow eingebunden wird.
Warum Claude Code im Headless-Modus eine Sandbox benötigt
Claude Code ist nützlich, weil es mehr tut, als nur Code zu entwerfen. Es liest Dateien, bearbeitet Dateien, führt Shell-Befehle aus und iteriert, nachdem es Testergebnisse gesehen hat. Dieselbe Fähigkeit ist der Grund, warum es eine Sandbox benötigt, wenn man von einer interaktiven Entwicklersitzung zu einer unbeaufsichtigten Automatisierung übergeht.
In einem lokalen Terminal erkennt ein Mensch schlechte Ideen normalerweise frühzeitig. Man sieht das geöffnete Repository. Man bemerkt, wenn ein Befehl auf das falsche Verzeichnis zusteuert. Man kann eine verdächtige Installation stoppen. In einem Headless-Workflow verschwinden diese natürlichen Prüfpunkte. Der Agent sieht nur die Anweisungen und die Umgebung, die man ihm gegeben hat.
Deshalb ist der richtige Vergleich nicht „Claude Code vs. kein Claude Code“. Es ist „Claude Code auf einem echten Rechner“ vs. „Claude Code innerhalb einer isolierten Ausführungsgrenze“. Sobald der Agent autonom handeln kann, wird der Arbeitsbereich Teil des Sicherheitsmodells.
Die Risikooberfläche ist recht konkret:
| Risikobereich | Was ohne Sandbox schiefgehen kann | Was eine Sandbox ändert |
|---|---|---|
| Repository-Umfang | Der Agent bearbeitet das falsche Repository, den falschen Branch oder unversionierte lokale Dateien | Jede Aufgabe erhält einen abgegrenzten Checkout, einen bekannten Basis-Commit und einen wegwerfbaren Branch |
| Shell-Ausführung | Befehle werden auf dem Host-Rechner oder dem gemeinsam genutzten Runner ausgeführt | Befehle bleiben innerhalb einer isolierten Dateisystem- und Prozessgrenze |
| Abhängigkeitsinstallationen | npm, pip oder andere Paketinstallationen führen beliebige Skripte auf dem Host aus |
Paketinstallationen erfolgen in einer wegwerfbaren Umgebung mit Richtlinien und Protokollen |
| Geheimnisse | Umgebungsvariablen, die für den Agenten sichtbar sind, können umfangreiche Entwickler- oder Produktionsanmeldeinformationen enthalten | Aufgabenspezifische Geheimnisse können auf die Sandbox-Sitzung beschränkt werden |
| Überprüfung | Die einzige Aufzeichnung ist eine Zusammenfassung des Chats oder ein Terminal-Transkript | Diff, Protokolle, stdout, stderr und Artefakte können zur Überprüfung erfasst werden |
Wenn Sie eine breitere Checkliste für das Design von Sandboxen wünschen, die nicht Claude-spezifisch ist, lesen Sie Coding Agent Sandbox: How to Run Agent-Generated Code Safely und Run Claude Code or Managed Agents in an Isolated Sandbox. Der Unterschied hier ist, dass Claude Code bereits einen konkreten CLI-Workflow hat, sodass die Infrastrukturfrage spezifischer wird: Wie führt man diese CLI sicher aus, wenn kein Mensch im Kreislauf ist?
Was sich ändert, wenn man --dangerously-skip-permissions verwendet
Dieses Flag ist der Grund, warum viele Teams beginnen, Sandbox-Fragen zu stellen. Im normalen interaktiven Gebrauch kann Claude Code nachfragen, bevor es Dateien bearbeitet oder Tools ausführt. In unbeaufsichtigter Automatisierung unterbrechen Genehmigungsaufforderungen den Ablauf, daher zeigen die Novita-Dokumentation das Headless-Muster mit claude --dangerously-skip-permissions -p "<prompt>" innerhalb der claude-code-Vorlage.
Das bedeutet nicht, dass das Flag per se unsicher ist. Es bedeutet, dass die Sicherheitsebene verschoben wurde.
Wenn Sie --dangerously-skip-permissions verwenden, sollten Sie davon ausgehen:
- Claude Code kann sofort Dateien bearbeiten.
- Claude Code kann sofort Befehle ausführen.
- Claude Code kann eine mehrschrittige Aufgabe fortsetzen, ohne für eine Überprüfung anzuhalten.
Die richtige Reaktion ist nicht, das Flag auf einem echten Arbeitsrechner zu verwenden und auf das Beste zu hoffen. Die richtige Reaktion ist, es nur innerhalb einer Sandbox zu verwenden, in der der Arbeitsbereich, das Repository, die Befehle, die Geheimnisse und die Netzwerkoberfläche bereits eingeschränkt sind. Die Sandbox-Grenze wird zu dem Ort, an dem man den Explosionsradius reduziert.
Deshalb sollten Sie die Formulierung bei der Dokumentation dieses Setups präzise halten. --dangerously-skip-permissions ist keine Empfehlung für die Bequemlichkeit auf dem lokalen Rechner. Es ist ein Sandbox-only-Betriebsmuster für Headless-Automatisierung. Wenn Ihr Workflow Claude Code immer noch auf einen Entwickler-Laptop, eine gemeinsam genutzte Bastion oder einen produktionsähnlichen Runner verweist, haben Sie die menschliche Genehmigungsaufforderung entfernt, ohne die Infrastrukturkontrolle hinzuzufügen, die sie ersetzen sollte.
Wenn Ihr Team noch entscheidet, ob es Paketinstallationen in dieser Umgebung vertrauen soll, kombinieren Sie diesen Artikel mit How to Safely Allow Package Installs in AI Agent Sandboxes und AI Agent Sandbox Isolation Boundary Checklist.
Wie Novitas claude-code-Vorlage auf einen Produktionsworkflow abbildet
Das Nützliche an den Novita-Dokumenten ist, dass sie nicht abstrakt bleiben. Sie zeigen die tatsächlichen Mechanismen, die ein Produktionsworkflow benötigt.
1. Headless -p und --print Modus
Die Dokumente verwenden Claude Code im nicht-interaktiven -p-Modus, sodass die Ausführung einen Prompt annehmen, ihr Ergebnis ausgeben und beenden kann. Das ist wichtig, weil Headless-Automatisierung einen sauberen programmatischen Vertrag benötigt. Sie möchten kein lang laufendes interaktives Terminal, das an eine menschliche Sitzung gebunden ist; Sie möchten eine aufgabenorientierte Ausführung, die gestartet, beobachtet und abgebaut werden kann.
Dies ist die gleiche Unterscheidung, die in Claude Code CLI Documentation besprochen wird: interaktives Claude Code ist für einen menschlichen Fahrer, während -p plus strukturierte Ausgabe die CLI in Skripten und Agent-Pipelines nützlich macht.
2. Benutzerdefinierte Modell-Routing über ~/.claude/settings.json
Die Novita-Dokumente zeigen auch ein praktisches Detail, das viele Teams übersehen: das Schreiben von ~/.claude/settings.json innerhalb der Sandbox, sodass Claude Code sein API-Token, seine Basis-URL und seine Modellkonfiguration über den env-Block erhält. Dieses Muster ist aus zwei Gründen wichtig.
Erstens hält es die Laufzeitumgebung autark. Die Sandbox kann mit der exakten Claude-Konfiguration starten, die die Aufgabe benötigt, anstatt das zu erben, was auf dem Rechner des Entwicklers vorhanden ist.
Zweitens unterstützt es explizite Umgebungskontrolle. Wenn Ihr Workflow Claude Code mit einem benutzerdefinierten Backend verwendet, wird die Sandbox-Konfiguration Teil des überprüften Setups anstelle eines versteckten persönlichen Shell-Zustands.
3. Echtes Repository-Klonen mit abgegrenzten Anmeldeinformationen
Die Dokumente zeigen sandbox.git.clone(...) mit einem Zielpfad, einer flachen Klontiefe und einem GitHub-Token für private Repositorys. Dies ist keine geringfügige Annehmlichkeit. Es ist der Unterschied zwischen einem reproduzierbaren Aufgabenarbeitsbereich und einem Agenten, der in einem mehrdeutigen Verzeichnis arbeitet.
Für den Produktionseinsatz ist das sicherere Muster:
- Nur das Repository klonen, das für die Aufgabe benötigt wird.
- Den Start-Ref oder Commit festlegen, wenn Ihr Workflow Reproduzierbarkeit erfordert.
- Einen Aufgaben-Branch für Agentenänderungen verwenden.
- Abgegrenzte Git-Anmeldeinformationen übergeben, die nur das lesen oder schreiben können, was die Aufgabe benötigt.
Wenn ein Repository noch keinen Schreibzugriff benötigt, geben Sie ihn nicht nur für den Fall, dass der Agent irgendwann einen PR eröffnet.
4. Strukturierte Ausgabe plus session_id für mehrschrittige Arbeit
Die Dokumente zeigen ein zweites nützliches Muster: Claude Code mit --output-format json starten, die zurückgegebene session_id parsen und dann mit --resume <session_id> fortfahren. Das macht aus einer einmaligen Code-Bearbeitung einen mehrschrittigen Workflow, den Sie programmatisch verwalten können.
Dies ist die richtige Lösung für Aufgaben wie:
- Schritt 1: Repository inspizieren und einen Refactoring-Plan erstellen
- Schritt 2: Dieselbe Sitzung fortsetzen und einen Teil umsetzen
- Schritt 3: Erneut fortsetzen, um Folgeüberprüfungen oder Bereinigungen durchzuführen
Die wichtige Best Practice ist nicht „immer resume verwenden“. Es ist „resume absichtlich verwenden“. Wenn Ihr Workflow von Kontinuität profitiert, setzen Sie dieselbe Sitzung in derselben Sandbox fort. Wenn die Aufgabe unabhängig überprüfbar sein soll, starten Sie eine neue Sandbox, anstatt den Zustand implizit weiterzutragen.
5. Arbeitsbereich nach der Aufgabe löschen
Die Novita-Dokumente beenden die Beispiele mit dem Löschen der Sandbox. Das ist genau die Gewohnheit, die Sie in der Produktion haben möchten. Ein Headless-Coding-Agent sollte nicht stillschweigend veraltete Arbeitsbereiche, Hintergrundprozesse oder verbleibende Anmeldeinformationen anhäufen. Eine wegwerfbare Umgebung ist einfacher zu durchschauen als eine mysteriöse Maschine mit Historie.
Wenn Sie das größere architektonische Bild zu diesem Laufzeitmodell wünschen, ist Building a Coding Agent with Novita’s Agent Sandbox die richtige Begleitlektüre.
Checkliste für Best Practices für Claude Code Sandbox
Die folgende Checkliste ist die Produktionsversion des Dokumentations-Workflows. Sie behält die exakten Novita-Vorlagenmechaniken bei und fügt die Kontrollen hinzu, die eine automatisierte Pipeline normalerweise benötigt.
- Eine Sandbox pro Aufgabe: Weisen Sie nicht mehrere nicht zusammenhängende Aufgaben einer langlebigen Claude Code-Umgebung zu. Neue Arbeitsbereiche machen den Start-Repository-Zustand offensichtlich und den Abbau einfacher.
- Abgegrenzter Git-Zugriff: Wenn Claude Code nur ein Repository klonen und inspizieren muss, verwenden Sie ein schreibgeschütztes Token. Wenn es einen Branch pushen muss, verwenden Sie ein Token, das auf dieses Repository und diesen Workflow beschränkt ist. Vermeiden Sie geerbte persönliche Anmeldeinformationen.
- Sandbox-geschützte Paketinstallationen: Claude Code benötigt oft Abhängigkeiten, um einen fehlgeschlagenen Build oder Test zu reproduzieren. Das ist in Ordnung, aber Installationen sollten innerhalb der Sandbox mit Protokollen und Richtlinien erfolgen, nicht auf dem Rechner des Betreibers. Überprüfen Sie Lockfile-Änderungen wie jede andere Codeänderung.
- Shell-Ausgabe als Beweismittel behandeln: Erfassen Sie stdout, stderr, Exit-Codes und die tatsächlich ausgeführten Befehle. Eine abschließende Zusammenfassung des Agenten ist nützlich, reicht aber für eine Überprüfung allein nicht aus.
- Keine standardmäßigen Produktionsgeheimnisse: Bevorzugen Sie kurzlebige oder nur für Staging-Zwecke gültige Anmeldeinformationen. Ein Coding-Agent, der das Repository lesen und Befehle ausführen kann, benötigt standardmäßig keine umfassenden Cloud-Admin-Token oder Produktionsdatenbank-Anmeldeinformationen.
- Das Diff überprüfen, nicht nur das Ergebnis: Headless-Erfolg bedeutet nur, dass Claude Code die von Ihnen vorgegebene Schleife abgeschlossen hat. Es bedeutet nicht, dass die Änderung korrekt oder versandbereit ist. Überprüfen Sie bearbeitete Dateien, Abhängigkeitsänderungen, Befehlsausgaben und alle generierten Artefakte.
--dangerously-skip-permissionssandbox-lokal halten: Dies ist die wichtigste betriebliche Regel in der Einrichtung. Das Flag gehört in eine isolierte, wegwerfbare Arbeitsumgebung. Es sollte nicht Ihre Abkürzung sein, um unbeaufsichtigtes Claude Code auf einem echten Rechner auszuführen.- Ausführung von Veröffentlichung trennen: Claude Code darf inspizieren, bearbeiten, testen und einen Patch vorbereiten. Das bedeutet nicht, dass es auch Merge-, Veröffentlichungs- oder Bereitstellungsentscheidungen treffen sollte. Halten Sie diese Aktionen hinter einem menschlichen oder expliziten Richtlinien-Gate.
- Resume absichtlich verwenden: Verwenden Sie
--resume <session_id>, wenn die Aufgabe tatsächlich von Kontinuität profitiert. Setzen Sie die Sandbox zurück, wenn Sie einen sauberen Test der Reproduzierbarkeit benötigen oder wenn eine Aufgabe nicht den Zustand einer anderen Aufgabe erben soll. - Die gesamte Anbieteroberfläche vergleichen: Wenn Sie entscheiden, wo dieser Workflow gehostet werden soll, prüfen Sie nicht nur, ob die Umgebung Claude Code starten kann. Vergleichen Sie Sitzungslebenszyklus, Repository-Ergonomie, Protokolle, Pausen- und Fortsetzungsverhalten sowie betriebliche Kompromisse. Für diesen Aspekt sind E2B vs. Daytona: AI Agent Sandbox Comparison und Novita Sandbox: A Cost-Effective Alternative to E2B Pro with Seamless Compatibility die relevanten Vergleichslektüren.
Häufige Fehler, die es zu vermeiden gilt
Die häufigsten Fehler bei Claude Code Sandbox sind betrieblicher, nicht konzeptioneller Natur.
Fehler 1: Das Dokumentationsbeispiel als vollständige Produktionsrichtlinie behandeln
Die Dokumente zeigen, wie man die claude-code-Vorlage korrekt startet. Sie versuchen nicht, Ihre vollständige Überprüfungs-, Netzwerk- oder Geheimnisverwaltungsrichtlinie zu sein. Verwenden Sie sie für Syntax und Laufzeitmechanik und fügen Sie dann Ihre eigenen Repository- und Genehmigungsgrenzen hinzu.
Fehler 2: Einen Entwicklerarbeitsrechner als „Sandbox“ wiederverwenden
Claude Code über ein Terminal auf Ihrem Laptop auszuführen, ist ein gültiger Entwickler-Workflow. Es ist nicht dasselbe wie eine wegwerfbare, isolierte Laufzeitumgebung für unbeaufsichtigte Automatisierung.
Fehler 3: Sitzungszustand implizit lassen
Wenn Sie --resume verwenden, wissen Sie, welchen Zustand Sie nach vorne tragen und warum. Wenn die Antwort „Wir sind uns nicht sicher, aber es war praktisch“ lautet, schaffen Sie ein schwierigeres Überprüfungsproblem.
Fehler 4: Echte Geheimnisse mit explorativer Code-Arbeit mischen
Eine Sandbox soll den Explosionsradius reduzieren. Wenn der Arbeitsbereich immer noch mit breiten Anmeldeinformationen Produktionssysteme erreichen kann, haben Sie die wichtigste Grenze geschwächt.
Fehler 5: Einem erfolgreichen Lauf mehr vertrauen als der Evidenz
Ein Agent kann eine Aufgabe abschließen und dennoch die falsche Änderung vornehmen, die falschen Dateien berühren oder eine Abhängigkeit hinzufügen, die Sie nicht wollten. Überprüfen Sie das Diff und die Protokolle, nicht nur die narrative Zusammenfassung.
FAQ
Bedeutet --dangerously-skip-permissions, dass Claude Code überhaupt keine Sicherheit mehr hat?
Es bedeutet, dass Claude Code nicht mehr auf interaktive Genehmigungen innerhalb der Sitzung wartet. Die beabsichtigte Sicherheitsebene in einem Headless-Workflow ist die Sandbox-Grenze um die Sitzung: isoliertes Repository, eingeschränkte Anmeldeinformationen, Befehlsausführung innerhalb der Sandbox, erfasste Protokolle und menschliche Überprüfung vor dem Merge.
Sollte jede Claude Code-Automatisierung in einer neuen Sandbox ausgeführt werden?
Neue Sandboxes sind der sauberste Standard für unabhängige Aufgaben. Resume-basierte Workflows sind nützlich, wenn dieselbe mehrschrittige Aufgabe Kontinuität benötigt, aber der Zustand sollte absichtlich und überprüfbar sein, nicht zufällig.
Kann Claude Code Pakete in einer Sandbox sicher installieren?
Es kann sicherer gemacht werden, aber nicht automatisch sicher. Verwenden Sie Paketrichtlinien, Lockfile-Überprüfung, abgegrenzten Netzwerkzugriff und Prüfprotokolle. Paketinstallationen sind einer der risikoreichsten Schritte in einem unbeaufsichtigten Coding-Workflow.
Reicht die Novita-Dokumentationsseite aus, um den Workflow zu implementieren?
Sie reicht für die veröffentlichte Vorlagensyntax und die unterstützten Claude Code-Mechanismen: Headless-Ausführungen, settings.json-Konfiguration, sandbox.git.clone, JSON-Ausgabe und Session-Resume. Für die Produktionseinführung benötigen Sie dennoch Ihre eigenen Überprüfungs-, Anmeldeinformations- und Richtlinienentscheidungen um diese Laufzeitumgebung.
