
Ultraschnelles CLI auf Apple Silicon macOS für schnelle, sandboxierte Entwicklung und LLM-Agenten.
eine ultraschnelle Open-Source-Sandbox für das sichere Ausführen von Coding-Agenten.
VibeBox ist eine projektspezifische Micro-VM-Sandbox zum Ausführen von Coding-Agenten unter macOS (Apple Virtualization Framework). Es ist für einen Alltags-Workflow optimiert: schnelles Warm-Re-Entry, explizite Mounts und wiederverwendbare Sitzungen.
Für wen es gedacht ist: macOS-Nutzer, die Coding-Agenten ausführen und echte Isolation wünschen, ohne auf einen schnellen täglichen Workflow zu verzichten.
Kurze Fakten: Warm-Re-Entry liegt auf meinem M3 typischerweise bei <5s (variiert je nach Maschine/Cache); der erste Start lädt ein Debian-Basisimage herunter und richtet es ein (netzwerkabhängig).
Sicherheitsmodell: Linux-Gast-VM mit expliziten Mount-Allowlists aus vibebox.toml (Repo-first, alles andere per Opt-in).
vibebox bringt Sie in eine wiederverwendbare Sandbox für das aktuelle Repo# from any repo
cd my-project
vibebox
Was Sie sehen sollten (ungefähr):
vibebox: starting (session: my-project)
vibebox: attaching...
vibecoder@vibebox:~/my-project$
Ich nutze täglich Coding-Agenten und wollte ihnen eine echte Shell geben, ohne ihnen meinen Host-Rechner zu überlassen. Wenn man alles absichert, hagelt es ununterbrochen Bestätigungen; lockert man es, macht man sich Sorgen um das Löschen von Dateien, den Zugriff auf Geheimnisse oder das Verlassen des Repos.
VibeBox ist der Mittelweg: eine pro-Repo-Sandbox mit einer harten VM-Grenze, schnellem Wiedereinstieg und expliziten Mounts. Es ist darauf ausgelegt, für Agentenarbeit „immer an“ zu sein, ohne die Sicherheit zur lästigen Pflicht zu machen.
Container sind großartig. VibeBox versucht nicht, Docker/Devcontainer zum Erstellen von Diensten zu ersetzen.
Ich wollte speziell eine VM-förmige Standardeinstellung für Agent-Workflows unter macOS:
Hier ist, warum ich nicht einfach vorhandene Optionen genutzt habe:
Das hat mich dazu bewegt, VibeBox zu bauen: Ich wollte eine projektbezogene Sandbox, die schnell betreten werden kann (einfach vibebox), echte Konfiguration + Sitzungen unterstützt und eine harte Isolationsgrenze beibehält.
# install script
curl -fsSL https://raw.githubusercontent.com/robcholz/vibebox/main/install | bash
# package managers
cargo install vibebox
# manual install
curl -LO https://github.com/robcholz/vibebox/releases/download/latest/vibebox-macos-arm64.zip
unzip vibebox-macos-arm64.zip
mkdir -p ~/.local/bin
mv vibebox ~/.local/bin
export PATH="$HOME/.local/bin:$PATH"
Anforderungen
Erster Start
Der erste vibebox-Lauf lädt ein Debian-Basisimage herunter und richtet es ein. Danach verwenden projektbezogene Instanzen das zwischengespeicherte Basisimage für viel schnellere Starts.
Schnellstart
cd /path/to/your/project
vibebox
Beim ersten Start erstellt VibeBox vibebox.toml in Ihrem Projekt (falls nicht vorhanden) und ein .vibebox/-Verzeichnis für Instanzdaten.
Konfiguration (vibebox.toml)
vibebox.toml befindet sich standardmäßig im Projektstammverzeichnis. Sie können es mit vibebox -c path/to/vibebox.toml oder der Umgebungsvariablen VIBEBOX_CONFIG_PATH überschreiben, aber der Pfad muss innerhalb des Projektverzeichnisses bleiben.
Standardkonfiguration (automatisch erstellt, wenn nicht vorhanden):
[box]
cpu_count = 2
ram_mb = 2048
disk_gb = 5
mounts = [
"~/.codex:~/.codex:read-write",
"~/.claude:~/.claude:read-write",
]
[supervisor]
auto_shutdown_ms = 20000
disk_gb wird nur angewendet, wenn der Instanzdatenträger zum ersten Mal erstellt wird. Wenn Sie ihn später ändern, führen Sie vibebox reset aus, um den Datenträger neu zu erstellen.
Mounts
~/<Projektname> eingehängt, und die Shell startet dort..git-Verzeichnis vorhanden ist, wird es mit einem tmpfs-Mount innerhalb der VM maskiert, um versehentliche Änderungen vom Gast aus zu verhindern.box.mounts im Format host:guest[:read-only|read-write].~-Erweiterung. Relative Gast-Pfade werden als /root/<Pfad> behandelt.~ verwenden, werden der Einfachheit halber nach /home/<ssh-user> verlinkt. Führen Sie vibebox explain aus, um die aufgelösten Host/Gast-Zuordnungen zu sehen.CLI-Befehle
vibebox # start or attach to the current project VM
vibebox list # list known project sessions
vibebox reset # delete .vibebox for this project and recreate on next run
vibebox purge-cache # delete the global cache (~/.cache/vibebox)
vibebox explain # show mounts and network info
In der VM
vibecodervibeboxgit, curl, ripgrep, openssh-server und sudo.mise und konfiguriert Tools wie uv, node, @openai/codex und @anthropic-ai/claude-code (nach bestem Bemühen).:help und :exit.Zustand & Cache
.vibebox/ (Instanzdatenträger, SSH-Schlüssel, Logs, Manager-Socket/PID). vibebox reset entfernt ihn.~/.cache/vibebox (Basisimage + gemeinsamer Gast-Cache). vibebox purge-cache löscht ihn.~/.vibebox/sessions und wird von vibebox list angezeigt.Wenn Sie daran interessiert sind, zu VibeBox beizutragen, lesen Sie bitte unsere Beitragsdokumentation, bevor Sie einen Pull-Request einreichen.
VibeBox ist für schnelle, wiederholbare lokale Sandboxes mit minimalem Aufwand gebaut. Was hier anders ist:
vibebox – bringt Sie von Ihrem Projekt aus in die Sandbox.vibebox.toml, wo Sie CPU, RAM, Datenträgergröße und Mounts festlegen können.vibe von lynaghk.
Und die großartige Rust-Community – ohne das Ökosystem und die Toolchain wie crates.io wäre das nicht möglich!
Folge mir auf X x.com/robcholz