
CLI ultra-rapide sur macOS Apple Silicon pour un développement rapide et sécurisé en bac à sable et pour les agents LLM.
un bac à sable open-source ultrarapide pour exécuter des agents de codage en toute sécurité.
VibeBox est un bac à sable micro-VM par projet pour exécuter des agents de codage sur macOS (Apple Virtualization Framework). Il est optimisé pour un workflow quotidien : réentrée rapide à chaud, montages explicites et sessions réutilisables.
À qui cela s’adresse : aux utilisateurs macOS qui exécutent des agents de codage et souhaitent un vrai isolement sans sacrifier un workflow quotidien rapide.
En bref : la réentrée à chaud prend typiquement <5s sur mon M3 (varie selon la machine/le cache) ; le premier lancement télécharge et provisionne une image de base Debian (dépend du réseau).
Modèle de sécurité : VM invitée Linux avec des listes d’autorisation de montage explicites depuis vibebox.toml (priorité au dépôt, tout le reste en option).
vibebox vous place dans un bac à sable réutilisable pour le dépôt courant# depuis n’importe quel dépôt
cd mon-projet
vibebox
Ce que vous devriez voir (approximativement) :
vibebox : démarrage (session : mon-projet)
vibebox : attachement...
vibecoder@vibebox:~/mon-projet$
J’utilise des agents de codage quotidiennement, et je voulais leur donner un vrai shell sans leur confier ma machine hôte. Si vous verrouillez tout, vous avez des confirmations incessantes ; si vous assouplissez, vous craignez de supprimer des fichiers, de toucher à des secrets ou de sortir du dépôt.
VibeBox est le compromis : un bac à sable par dépôt avec une frontière VM solide, une réentrée rapide et des montages explicites. Il est conçu pour être « toujours actif » pour le travail des agents sans faire de la sécurité une corvée.
Les conteneurs sont super. VibeBox n’essaie pas de remplacer Docker/devcontainers pour construire des services.
Je voulais spécifiquement un format VM par défaut pour les workflows d’agents sur macOS :
Voici pourquoi je n’ai pas simplement utilisé les options existantes :
C’est ce qui m’a poussé à construire VibeBox : je voulais un bac à sable par projet rapide à ouvrir (juste vibebox), prenant en charge la configuration réelle + les sessions, et conservant une frontière d’isolation solide.
# script d’installation
curl -fsSL https://raw.githubusercontent.com/robcholz/vibebox/main/install | bash
# gestionnaires de paquets
cargo install vibebox
# installation manuelle
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"
Prérequis
Premier lancement
Le premier lancement de vibebox télécharge une image de base Debian et la provisionne. Ensuite, les instances par projet réutilisent l’image de base mise en cache pour des démarrages beaucoup plus rapides.
Démarrage rapide
cd /chemin/vers/votre/projet
vibebox
Au premier lancement, VibeBox crée vibebox.toml dans votre projet (si manquant) et un répertoire .vibebox/ pour les données d’instance.
Configuration (vibebox.toml)
vibebox.toml se trouve par défaut à la racine de votre projet. Vous pouvez le remplacer avec vibebox -c chemin/vers/vibebox.toml ou la variable d’environnement VIBEBOX_CONFIG_PATH, mais le chemin doit rester à l’intérieur du répertoire du projet.
Configuration par défaut (créée automatiquement si absente) :
[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 n’est appliqué que lors de la première création du disque de l’instance. Si vous le modifiez par la suite, exécutez vibebox reset pour recréer le disque.
Montages
~/<nom-du-projet>, et le shell y démarre..git existe, il est masqué par un montage tmpfs à l’intérieur de la VM pour décourager les modifications accidentelles depuis l’invité.box.mounts avec le format hôte:invité[:read-only|read-write].~. Les chemins invité relatifs sont traités comme /root/<chemin>.~ sont liés dans /home/<utilisateur-ssh> pour plus de commodité. Exécutez vibebox explain pour voir les correspondances hôte/invité résolues.Commandes CLI
vibebox # démarrer ou s’attacher à la VM du projet courant
vibebox list # lister les sessions de projet connues
vibebox reset # supprimer .vibebox pour ce projet et recréer au prochain lancement
vibebox purge-cache # supprimer le cache global (~/.cache/vibebox)
vibebox explain # afficher les montages et les informations réseau
À l’intérieur de la VM
vibecodervibeboxgit, curl, ripgrep, openssh-server et sudo.mise et configure des outils comme uv, node, @openai/codex et @anthropic-ai/claude-code (au mieux).:help et :exit.État et cache
.vibebox/ (disque d’instance, clés SSH, journaux, socket/pid du gestionnaire). vibebox reset le supprime.~/.cache/vibebox (image de base + cache invité partagé). vibebox purge-cache le vide.~/.vibebox/sessions et est affiché par vibebox list.Si vous souhaitez contribuer à VibeBox, veuillez lire notre documentation de contribution avant de soumettre une pull request.
VibeBox est conçu pour des bacs à sable locaux rapides et reproductibles avec un minimum de cérémonie. Ce qui est différent ici :
vibebox — vous place dans le bac à sable depuis votre projet.vibebox.toml, où vous pouvez définir le CPU, la RAM, la taille du disque et les montages.vibe par lynaghk.
Et l’incroyable communauté Rust — sans l’écosystème et la chaîne d’outils comme crates.io, cela ne serait pas possible !
Suivez-moi sur X x.com/robcholz