
Dein Agent ist ein Sicherheitsrisiko, also behandle ihn auch so. yoloAI macht AI-Agenten-Sandboxing richtig.
Sandbox-Ausführungsumgebung für KI-Codierungsagenten. Keine Berechtigungsmüdigkeit, keine Anmeldedaten in der Sandbox, keine Änderungen an deinem Projekt, bis du sie genehmigst.
KI-Codierungsagenten funktionieren am besten ohne Sicherheitsvorkehrungen, und das ist eine schlechte Art, sie auf deinem echten Rechner auszuführen. yoloAI gibt dem Agenten eine Wegwerf-Sandbox, in der er alles bearbeiten und alles ausführen kann, unbeaufsichtigt. Dein Projekt, deine Anmeldedaten und dein Netzwerk bleiben unter deiner Kontrolle. Wenn der Agent fertig ist, überprüfe den Diff und übernimm, was du behalten möchtest.
Du Sandbox Dein Projekt
│ │ │
├─ yoloai new fix-bug . ├─ Sandbox-Kopie des Projekts │
│ │ │
├─ << deine Eingabeaufforderung(en) >> ├─ Agent arbeitet frei │
│ │ (keine Berechtigungsabfragen) │
│ │ │
├─ yoloai diff fix-bug ├─ zeigt, was sich geändert hat │
│ │ │
├─ yoloai apply fix-bug │ ├─ Patches angewendet
│ (du wählst aus, welche) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ zerstört die Sandbox │
Berechtigungsabfragen existieren, weil Agenten Fehler machen. Nach der hundertsten Genehmigen/Ablehnen-Abfrage liest du sie nicht mehr, und --dangerously-skip-permissions ist nur einen verwirrten Agenten von einem sehr schlechten Tag entfernt. yoloAI verkleinert den Schadensradius, bis die Abfragen unnötig sind:
diff zeigt genau, was sich geändert hat, apply patcht dein echtes Projekt unter Beibehaltung einzelner Commits, und deine Originale ändern sich nie, bis du sie anwendest.--network-isolated beschränkt den ausgehenden Datenverkehr auf die API-Endpunkte des Agenten plus von dir erlaubte Domains. --network-none entfernt das Netzwerk vollständig.Siehe Sicherheit für das vollständige Modell, einschließlich ehrlicher Einschränkungen.
Lade das Archiv für deine Plattform vom neuesten Release herunter, extrahiere die yoloai-Binärdatei und lege sie auf deinen PATH:
# Linux x86-64 (ersetze bei Bedarf durch linux_arm64 / darwin_amd64 / darwin_arm64).
# Setze VERSION auf das Tag, das auf der oben verlinkten Release-Seite angezeigt wird, ohne
# das führende "v" — z. B. VERSION=1.2.3 für Tag v1.2.3.
VERSION=X.Y.Z
curl -fsSL "https://github.com/kstenerud/yoloai/releases/download/v${VERSION}/yoloai_${VERSION}_linux_amd64.tar.gz" \
| tar -xz yoloai
sudo install yoloai /usr/local/bin/
Jedes Archiv enthält außerdem Shell-Vervollständigungen, die LICENSE und das Änderungsprotokoll. Releases sind mit cosign signiert (checksums.txt) und tragen GitHub-Build-Herkunftsnachweise (gh attestation verify yoloai_… --repo kstenerud/yoloai). Debian/RPM-Pakete sind ebenfalls jedem Release beigefügt.
brew install --cask kstenerud/tap/yoloai
go install# Neuestes Release
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Neueste Entwicklungsversion (instabil)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Erfordert Go 1.26+. Die Binärdatei wird in $GOPATH/bin platziert (normalerweise ~/go/bin).
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # neuestes Release-Tag; oder auf main bleiben für die Entwicklungsversion
make build
sudo install yoloai /usr/local/bin/
Es ist eine einzelne Go-Binärdatei ohne Laufzeitabhängigkeiten außer deinem gewählten Backend. Beim ersten Start erstellt yoloAI sein Basis-Image und erstellt ~/.yoloai/ (oder das Verzeichnis, das du mit --data-dir angibst).
# Authentifizieren (yoloAI erkennt vorhandene Anmeldedaten automatisch)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# Oder lass es einfach deine bereits authentifizierte Sitzung übernehmen
# 1. Sandbox starten. Der Agent beginnt sofort zu arbeiten, wenn du eine Eingabeaufforderung angibst
yoloai new fix-bug ./my-project --prompt "fix the failing tests"
# 2. Sehen, was der Agent geändert hat
yoloai diff fix-bug
# 3. Die guten Teile auf dein echtes Projekt anwenden
yoloai apply fix-bug
# 4. Sandbox verwerfen
yoloai destroy fix-bug
yoloai new exploration ./my-project -a
# Du bist im Agenten, der in tmux in der Sandbox läuft.
# Strg-B, D zum Trennen.
# yoloai attach exploration zum erneuten Verbinden.
Für längere Sitzungen arbeite in einer Schleife: Sage dem Agenten, er soll während der Arbeit committen, und führe yoloai apply von einem anderen Terminal aus, wann immer du die fertigen Commits in dein echtes Projekt übernehmen möchtest. Jedes Apply übernimmt nur die neuen Commits seit dem letzten. Wenn du mit dem Ergebnis zufrieden bist, pushe wie gewohnt und zerstöre die Sandbox. Siehe den Nutzungsleitfaden für den vollständigen Arbeitsablauf.
Erstellen einer Sandbox, Auffordern des Agenten und Anwenden der Ergebnisse:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Sandboxing
--env, --dir).--cpus, --memory) und Portweiterleitung (--port).clonefile), Datei-Reflinks auf Linux-Dateisystemen, die sie unterstützen (btrfs, XFS). Dateisysteme ohne Reflink (ext4) erhalten eine normale Kopie..gitignore wird berücksichtigt: Alles, was ignoriert wird, wird NICHT in die Sandbox kopiert (Sicherheitspraxis für Entwicklungsanmeldedaten auf der Festplatte).Anmeldedaten
Arbeitsablauf
.patch-Dateien exportieren, Commits per Ref auswählen oder zuerst --dry-run.yoloai run --prompt ... --rm, mit --json-Ausgabe bei jedem Befehl.Integration
shell-Modus für alles andere.--vscode-tunnel).yoloai mcp serve lässt einen äußeren Agenten Sandboxes als Werkzeuge steuern; yoloai mcp proxy führt MCP-Server in einer Sandbox aus.yoloai x).~/.yoloai/ (verschiebbar mit --data-dir).Hinweis: Tart bietet eine vollständige macOS-VM und ermöglicht dir, Simulatoren in der Sandbox auszuführen.
Optional das OCI-Runtime für stärkere Isolation aufrüsten. gVisor-Modi sind auf docker und podman verfügbar; die VM-Modi kommen mit dem containerd-Backend.
# gVisor für alle neuen Sandboxes verwenden
yoloai config set isolation container-enhanced
# Oder pro Sandbox
yoloai new task . --isolation container-enhanced
Verwende yoloai system agents, um verfügbare Agenten aufzulisten.
Öffentliche Beta. Der Kernarbeitsablauf ist stabil und wird täglich genutzt; Schnittstellen können sich zwischen 0.x-Releases noch ändern, und jede bahnbrechende Änderung ist in BREAKING-CHANGES dokumentiert. Feedback ist willkommen.
| Backend | Unterstützte Hosts | Abhängigkeiten |
|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop oder OrbStack |
| podman | Linux, macOS | Podman (brew install podman auf macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (beliebig) | Keine (verwendet integriertes sandbox-exec) |
| Modus | Beschreibung |
|---|
container | Standard runc: Standard-Linux-Namespaces und cgroups |
container-enhanced | Userspace-Kernel (gVisor/runsc): Syscall-Interception, kein KVM erforderlich |
container-privileged | Alle Capabilities, seccomp/AppArmor uneingeschränkt. Für Docker-in-Docker und Compose verwenden |
vm | Kata Containers (QEMU): Hardware-VM-Isolation |
vm-enhanced | Kata + Firecracker microVM: leichte VM-Isolation |
| Modus | Beschreibung |
|---|
claude | Führt Claude Code über API-Schlüssel oder Abonnement-Anmeldedaten aus (Standard) |
codex | Führt Codex über API-Schlüssel oder Abonnement-Anmeldedaten aus |
gemini | Führt Gemini CLI über API-Schlüssel oder Abonnement-Anmeldedaten aus |
aider | Führt Aider aus (deine Konfiguration wird kopiert) |
opencode | Führt OpenCode aus (deine Konfiguration wird kopiert) |
shell | Führt eine tmux-Shell mit allen Agenten-Anmeldedaten aus |
idle | Führt einen Leerlaufprozess aus, um MCP-Proxying zu ermöglichen |