
CLI ultra-rápida no macOS com Apple Silicon para desenvolvimento rápido e em sandbox e agentes de LLM.
um sandbox open-source ultrarrápido para executar agentes de codificação com segurança.
VibeBox é um sandbox micro-VM por projeto para executar agentes de codificação no macOS (Apple Virtualization Framework). É otimizado para um fluxo de trabalho diário: reentrada rápida a quente, montagens explícitas e sessões reutilizáveis.
Para quem é: usuários de macOS que executam agentes de codificação e desejam isolamento real sem abrir mão de um fluxo de trabalho diário rápido.
Fatos rápidos: a reentrada a quente normalmente leva <5s no meu M3 (varia conforme máquina/cache); a primeira execução baixa e prepara uma imagem base Debian (depende da rede).
Modelo de segurança: VM convidada Linux com listas de permissão de montagem explícitas em vibebox.toml (repositório primeiro, todo o resto
opt-in).
vibebox coloca você em um sandbox reutilizável para o repositório atual# a partir de qualquer repositório
cd meu-projeto
vibebox
O que você deve ver (aproximadamente):
vibebox: iniciando (sessão: meu-projeto)
vibebox: anexando...
vibecoder@vibebox:~/meu-projeto$
Eu uso agentes de codificação diariamente e queria dar a eles um shell real sem entregar minha máquina host. Restringir demais gera confirmações sem parar; afrouxar e você se preocupa em deletar arquivos, tocar em segredos ou sair do repositório.
VibeBox é o meio-termo: um sandbox por repositório com uma fronteira rígida de VM, reentrada rápida e montagens explícitas. Foi construído para ficar "sempre ligado" para trabalho de agente sem tornar segurança uma tarefa chata.
Contêineres são ótimos. VibeBox não tenta substituir Docker/devcontainers para construir serviços.
Eu especificamente queria um formato de VM padrão para fluxos de trabalho de agente no macOS:
Aqui está o motivo pelo qual simplesmente não usei opções existentes:
Foi isso que me levou a construir o VibeBox: eu queria um sandbox por projeto que fosse rápido de entrar (apenas vibebox),
suportasse configuração real + sessões e mantivesse uma fronteira rígida de isolamento.
# script de instalação
curl -fsSL https://raw.githubusercontent.com/robcholz/vibebox/main/install | bash
# gerenciadores de pacotes
cargo install vibebox
# instalação manual
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"
Requisitos
Primeira execução
A primeira execução de vibebox baixa uma imagem base Debian e a prepara. Depois disso, as instâncias por projeto reutilizam a
imagem base em cache para inicializações muito mais rápidas.
Início rápido
cd /caminho/para/seu/projeto
vibebox
Na primeira execução, o VibeBox cria vibebox.toml no seu projeto (se ausente) e um diretório .vibebox/ para dados da instância.
Configuração (vibebox.toml)
vibebox.toml reside na raiz do seu projeto por padrão. Você pode substituí-lo com vibebox -c caminho/para/vibebox.toml ou a
variável de ambiente VIBEBOX_CONFIG_PATH, mas o caminho deve permanecer dentro do diretório do projeto.
Configuração padrão (criada automaticamente quando ausente):
[box]
cpu_count = 2
ram_mb = 2048
disk_gb = 5
mounts = [
"~/.codex:~/.codex:leitura-escrita",
"~/.claude:~/.claude:leitura-escrita",
]
[supervisor]
auto_shutdown_ms = 20000
disk_gb só é aplicado quando o disco da instância é criado pela primeira vez. Se você alterá-lo depois, execute vibebox reset para
recriar o disco.
Montagens
~/<nome-do-projeto>, e o shell inicia lá..git, ele é mascarado com uma montagem tmpfs dentro da VM para desencorajar edições acidentais do
convidado.box.mounts com o formato host:convidado[:somente-leitura|leitura-escrita].~. Caminhos relativos do convidado são tratados como /root/<caminho>.~ são vinculados em /home/<ssh-user> para conveniência. Execute vibebox explain para ver os mapeamentos
resolvidos host/convidado.Comandos CLI
vibebox # inicia ou anexa à VM do projeto atual
vibebox list # lista sessões de projeto conhecidas
vibebox reset # deleta .vibebox deste projeto e recria na próxima execução
vibebox purge-cache # limpa o cache global (~/.cache/vibebox)
vibebox explain # mostra informações de montagem e rede
Dentro da VM
vibecodervibeboxgit, curl, ripgrep, openssh-server e sudo.mise e configura ferramentas como uv, node, @openai/codex e
@anthropic-ai/claude-code (melhor esforço).:help e :exit.Estado e Cache
.vibebox/ (disco da instância, chaves SSH, logs, socket/pid do gerenciador). vibebox reset o remove.~/.cache/vibebox (imagem base + cache compartilhado do convidado). vibebox purge-cache o limpa.~/.vibebox/sessions e é mostrado por vibebox list.Se você tem interesse em contribuir para o VibeBox, por favor leia nosso guia de contribuição antes de enviar um pull request.
O VibeBox foi construído para sandboxes locais rápidos e repetíveis com o mínimo de cerimônia. O que é diferente aqui:
vibebox — coloca você no sandbox a partir do seu projeto.vibebox.toml, onde você pode definir CPU, RAM, tamanho do disco e montagens.vibe por lynaghk.
E a incrível comunidade Rust — sem o ecossistema e as ferramentas como crates.io, isso não seria possível!
Siga-me no X x.com/robcholz