Yolobox – AI-Coding-Agenten mit vollen Rechten ausführen und dabei das Home-Verzeichnis schützen
(github.com/finbarr)- Ein Tool, das AI-Coding-Agenten mit vollständigen Systemrechten ausführt und dabei das Risiko von Schäden am Home-Verzeichnis blockiert
- Wichtige AI-CLIs wie Claude Code, Codex, Gemini CLI, OpenCode sind vorkonfiguriert und können im „YOLO-Modus“ ausgeführt werden
- Es bindet nur das Projektverzeichnis in einen Docker- oder Podman-Container ein, während das Home-Verzeichnis standardmäßig ausgeschlossen bleibt
- Innerhalb des Containers stehen sudo-Rechte und persistente Volumes zur Verfügung, damit Tools und Einstellungen sitzungsübergreifend erhalten bleiben
- Bietet eine isolierte Sandbox-Umgebung, in der Entwickler AI-Automatisierungsfunktionen sicher ausprobieren können
Überblick
- Yolobox ist ein Tool, das AI-Coding-Agenten innerhalb eines Containers ausführt und dabei das System schützt, während gleichzeitig volle Ausführungsrechte gewährt werden
- Selbst wenn die AI bei der Befehlsausführung versehentlich einen destruktiven Befehl wie
rm -rf ~ausführt, bleibt das Home-Verzeichnis unberührt - Das Projektverzeichnis wird als
/workspaceeingebunden, das Home-Verzeichnis wird standardmäßig nicht eingebunden - Durch persistente Volumes bleiben Tools und Einstellungen über Sitzungen hinweg erhalten
- Selbst wenn die AI bei der Befehlsausführung versehentlich einen destruktiven Befehl wie
Wichtige Komponenten und Funktionen
- Innerhalb des Containers besitzt der AI-Agent sudo-Rechte und kann Befehle frei ausführen
- Das Standard-Image enthält Folgendes
- AI-CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (alle auf automatischen Ausführungsmodus eingestellt)
- Entwicklungsumgebung: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
- Utilities: ripgrep, fd, fzf, jq, vim
- Bei Bedarf können Nutzer zusätzliche Pakete selbst per sudo installieren
Ausführung und Befehle
- Mit dem Befehl
yoloboxgelangt man in eine Sandbox-Shell - Mit
yolobox runkann ein einzelner Befehl ausgeführt werden - Es werden Verwaltungsbefehle wie
yolobox upgrade,yolobox config,yolobox reset --force,yolobox versionbereitgestellt - Wichtige Flags
--runtime: Auswahl zwischen docker und podman--no-network: Netzwerk deaktivieren--readonly-project: Projekt schreibgeschützt einbinden--claude-config: Claude-Konfiguration vom Host in den Container kopieren
Sicherheitsmodell
- Container-Isolierung dient als Sicherheitsgrenze
- Container trennen Dateisystem, Prozesse und Netzwerk über Linux-Namespaces
- Die AI besitzt innerhalb des Containers Root-Rechte, hat aber keinen Zugriff auf das externe System
- Geschützt werden
- Home-Verzeichnis, SSH-Schlüssel, Zugangsdaten, Dotfiles, andere Projekte, Host-Systemdateien
- Nicht geschützt werden
- Projektverzeichnis (standardmäßig mit Lese-/Schreibzugriff)
- Netzwerkzugriff (kann optional blockiert werden)
- Kernel-Schwachstellen oder Container-Escape-Angriffe
Schritte zur Härtung der Sicherheit
- Standardmodus: normale Container-Isolierung
- Stufe 2: Verkleinerung der Angriffsfläche mit den Optionen
--no-network --readonly-project - Stufe 3: Verwendung von Rootless Podman, um Root-Rechte auf dem Host zu vermeiden
- Root im Container wird auf einen normalen Benutzer des Hosts abgebildet, wodurch der Schaden bei einem Escape minimiert wird
- Stufe 4: Ausführung innerhalb einer VM, um die gemeinsame Kernel-Nutzung zu eliminieren
- Unter macOS kommen UTM, Parallels, Lima zum Einsatz, unter Linux Podman machine oder eine dedizierte VM
Netzwerkisolierung
- Rootless Podman verwendet standardmäßig das slirp4netns-Netzwerk und ist dadurch vom Host-Netzwerk getrennt
- Mit der Einstellung
allow_host_loopback=falselässt sich der Zugriff auf das lokale Netzwerk blockieren
Lizenz und Sonstiges
- Veröffentlicht unter der MIT-Lizenz
- Sprachverteilung des Repositories: Go 75.9 %, Dockerfile 13.6 %, Shell 8.7 %, Makefile 1.8 %
- Der Name „Yolobox“ leitet sich vom Geist von „YOLO (You Only Live Once)“ ab und steht für eine sicher isolierte Umgebung, in der AI frei ausgeführt werden kann
1 Kommentare
Hacker-News-Kommentare
Ich habe kürzlich ein ähnliches Projekt namens Litterbox gebaut (Demo-Seite)
Es ist nur für Linux, weil es von Podman abhängt. Dafür hat es einige Vorteile, die zu meinem Anwendungsfall passen
Ich habe ebenfalls mit etwas Ähnlichem experimentiert.
Es wäre gut, in der README klar zu erklären, wie es funktioniert und wo die Vertrauensgrenzen liegen (Docker-Container-basiert). Das Risiko eines Container-Escapes besteht weiterhin, da Kernel-Schwachstellen ausgenutzt werden können
Ich nutze Rootless Podman und
slirp4netns, um den Netzwerkzugang zu minimieren.Als nächsten Schritt möchte ich Podman machine verwenden, um den Kernel vollständig zu isolieren, aber Volume-Mounts funktionieren nicht richtig
Jemand schlug vor, in
agents.mdoderclaude.mddie drei Gesetze der Robotik von Asimov aufzunehmenclaude.mdschreibt, bekommt das Modell dieses Konzept quasi „ins Bewusstsein eingebrannt“. Frühere Modelle lieferten seltsame Ergebnisse, wenn man ihnen sagte, sie sollten das Wort „Elefant“ nicht verwenden, weil sie es dann um jeden Preis zu vermeiden versuchtenEs wurde empfohlen, sich Shai anzusehen. Es läuft lokal und kann Verzeichniszugriffe sowie Netzwerkverkehr kontrollieren
Mit
shai -rw .erlaubt man Lese-/Schreibzugriff auf das aktuelle Verzeichnis, mitshai -u rootkann man es als anderer Nutzer ausführenShai folgt der Philosophie standardmäßig blockieren, explizit erlauben (Opt-in). Es wird empfohlen,
.shai/config.yamlim Repository zu teilen, damit das ganze Team dieselbe Konfiguration nutzt--no-networkblockierenIch entwickle yolo-cage. Während Yolobox auf den Schutz des lokalen Rechners fokussiert ist, konzentriert sich yolo-cage auf die Verhinderung von Geheimnisabfluss und die Zusammenarbeit mehrerer Agenten
Es läuft auf Kubernetes und scannt den gesamten ausgehenden Traffic, um das Abfließen von API-Keys oder Tokens zu verhindern.
Es erzwingt die Isolation von Git-Branches, damit Agenten ihre eigenen PRs nicht mergen können — „Agenten machen Vorschläge, Menschen geben die Freigabe“
Außerdem ist ein Escape-Test-Framework eingebaut, das Claude gezielt dazu verleitet, selbst einen Ausbruch zu versuchen. Der entsprechende Prompt liegt im Repository, um zu prüfen, ob der Agent tatsächlich echt ist
Ich habe mich gefragt, warum Commits mit „claude“ gekennzeichnet werden müssen. Man markiert ja auch nicht das OS oder die vim-Version. Ein LLM ist letztlich nur ein Werkzeug, das Englisch in Code kompiliert
Ich habe ebenfalls etwas Ähnliches versucht. Daraus ist Toadbox entstanden, mit ein paar zusätzlichen Komfortfunktionen
Es gibt viel Gerede über Sandboxes für KI, aber tatsächlich haben Claude Code, Codex und Gemini CLI bereits eingebaute Sandboxes
Ich implementiere gerade etwas Ähnliches mit dem Apple Container Framework. Mich würde interessieren, ob du es dir schon angesehen hast
Allerdings fehlen Docker-API-Kompatibilität und Komponierbarkeit. Eine entsprechende Diskussion habe ich hier zusammengefasst
Ursprünglich wollte ich Shai auf Apple Container aufsetzen, habe das aber wegen Packaging-Problemen aufgegeben
Ich baue auch etwas Ähnliches → sandbox-codex
Es ist noch in Arbeit, und die Lesbarkeit der tmux-Logs ist nicht besonders gut. Da Docker keine vollständige Sandbox ist, lasse ich es in VirtualBox laufen