- Ambiente leve de máquina virtual Linux para executar agentes de IA, funcionando com base no Virtualization.framework do macOS. Não precisa de Docker
- Toda execução começa por padrão como efêmera (Ephemeral), então instalações e mudanças são reiniciadas automaticamente ao encerrar
- Com o recurso de Checkpoint, é possível salvar o estado do disco como snapshots e restaurar, ramificar e reutilizar
- É possível controlar com precisão rede, CPU, memória e tamanho do disco por opções de linha de comando ou arquivo de configuração
- Fornece um ambiente local de sandbox seguro e reproduzível para execução de código por IA, instalação de pacotes, avaliação e testes
Visão geral do sandbox local-first shuru
- Estrutura para executar uma VM Linux leve para agentes de IA no macOS
- Usa o Apple Virtualization.framework para oferecer velocidade nativa ARM64 sem emulação
- Não depende de Docker e, por padrão, funciona em modo temporário/efêmero (Ephemeral)
- Cada execução começa com um rootfs limpo, e as mudanças não são mantidas a menos que sejam salvas
Gerenciamento de estado e snapshots
- Com o recurso de Checkpoint, é possível salvar o estado do disco como snapshots nomeados
- Os snapshots salvos podem ser restaurados, ramificados e executados repetidamente
- Permite versionar o ambiente como se fossem commits do Git
- Comandos de exemplo:
$ shuru checkpoint create myenv --allow-net -- sh -c 'apk add nodejs npm' → salva o snapshot myenv
$ shuru run --from myenv -- node -e 'console.log("ready")' → executa imediatamente no ambiente salvo
Recursos da CLI
- Fornece uma interface CLI simples para iniciar e encerrar a VM com um único comando
$ shuru run -- echo "hello from the sandbox" → executa um comando dentro do sandbox
$ shuru run -- cat /etc/os-release | head -1 → verifica o ambiente Alpine Linux
- O acesso à rede vem desativado por padrão, e a NAT pode ser ativada com a flag
--allow-net
- Configuração de recursos: ajuste o ambiente de execução com as opções
--cpus, --memory, --disk-size
- Suporta port forwarding: conexão entre host e guest no formato
-p 8080:8000
Execução e uso com agentes de IA
- Fornece um ambiente de VM isolado para executar código gerado por IA
- É possível acompanhar a saída em tempo real
- Permite fazer com segurança instalação de pacotes, compilação de código e uso de ferramentas do sistema
- Permite realizar avaliações consistentes entre ambientes com execução paralela de sandboxes
- Pode ser usado como ambiente Linux descartável para testes, depuração e prototipagem
Instalação e início
- Tanto a instalação quanto a execução podem ser feitas com um único comando
- Com inicialização rápida e ambiente descartável, oferece um espaço de execução seguro tanto para desenvolvedores quanto para sistemas de IA
1 comentários
Comentários no Hacker News
O ponto importante aqui não é o “VM local” em si, mas que a direção do padrão é invertida
A maioria dos sistemas tem como padrão um estado persistente e conectado à rede, mas aqui o padrão é o oposto: um ambiente temporário e isolado
Ao executar código não confiável, essa diferença é bastante importante
Estou pensando em criar uma versão local-first do microterm.dev para macOS
O objetivo é manter o mesmo ambiente em todos os alvos, variando apenas velocidade e quantidade de RAM
container2wasm?Estou usando um terminal alpine no celular agora e chego a me perguntar se isso roda no navegador ou não
Fiquei curioso sobre o que “local first” significa aqui. Quer dizer apenas que roda localmente?
Serviços como E2B e sprites.dev oferecem sandboxes em nuvem, mas o shuru roda a VM localmente usando o Virtualization.framework da Apple
Ou seja, os dados não saem do Mac
A stack de agentes está se dividindo cada vez mais em uma estrutura de camadas especializada, e o sandboxing está evoluindo como uma área independente
Há casos como Shuru, E2B, Modal e wrappers para Firecracker
No texto que escrevi antes, “Don’t go monolithic — the agent stack is stratifying”, também tratei dessa mudança estrutural e das limitações de abordagens monolíticas
Se você não armazenar o contexto das decisões de projeto tomadas em conjunto por desenvolvedor e IA, informações importantes se perdem
Mas não tenho certeza se esse texto se conecta diretamente ao tema de micro VM
Fiquei curioso sobre qual é a diferença em relação ao projeto container da Apple
O fluxo de inovação nessa área é interessante
Já o shuru foca em micro VMs com recurso de checkpoint, então tem um escopo bem mais simples
Fiquei curioso se existe algum exemplo de algo assim implementado para Windows
O WSL exige configuração na hora de distribuir apps para usuários comuns, então não é adequado para uso de consumidor final
Esse projeto é realmente muito legal. Faz meses que eu estava esperando uma micro VM baseada em Virtualization.framework
O Docker também é bom, mas o problema é que tem overhead demais
Gostei do fato de o padrão ser temporário e com a rede desativada
Também queria saber se há planos para adicionar um recurso de mapeamento de diretórios do host
Eu mantenho um servidor MCP para sandbox efêmero com suporte a vários backends (Docker, E2B, Modal, WASM etc.), então estou pensando em integrar isso nele
Link do projeto Kilntainers
Fiquei curioso sobre quais são as vantagens em comparação com o Lima
A diferença está nos padrões e no quanto a configuração inicial é simplificada
O shuru oferece por padrão VM temporária, rede desativada e rootfs limpo a cada execução
Basta digitar
shuru run, sem arquivo de configuração, e ele executa na horaCheckpoint e branching também já vêm embutidos na CLI
O Lima é um projeto muito maior e mais maduro, mas o shuru está sendo desenvolvido como uma ferramenta simples e adequada para aprendizado
Eu estava procurando algo assim para um projeto novo
O que estou fazendo é uma ferramenta híbrida de retool + OpenClaw para ajudar pequenas e médias empresas a criar apps internos rapidamente
O Shuru é muito legal mesmo
Eu também estou desenvolvendo uma ferramenta baseada em MicroVM para Linux com conceito parecido
O padrão é offline, e ainda não está em fase de divulgação, mas estamos usando internamente em dogfooding