Repository navigation
Releases
Peapod v0.3.0 🫛
Peapod v0.3.0 🫛
Release de revisão e endurecimento: 9 bugs corrigidos, firewall disponível para os agentes, proxy anti-SSRF, app sem travar e CI que compila o app. Sandboxes isolados, descartáveis e auditados para a IA (ou você) rodar código não-confiável.
🔒 Segurança
- Firewall no MCP —
peapod_sandbox_create/forkaceitamallow(lista de domínios): o agente pede egresso mínimo em vez de "tudo ou nada". - Anti-SSRF — o proxy recusa destinos que resolvam para IPs privados/loopback/link-local mesmo em domínios liberados (fecha DNS rebinding); disca o IP resolvido, não o nome.
- Política de rede fail-closed — um valor inválido (typo em
--net) agora dá erro, em vez de cair silenciosamente na rede completa. - Timeout de verdade — o limite do
execé aplicado dentro do sandbox (watchdog, exit 137); antes só o cliente desistia e o processo continuava. - CSRF no dashboard — os endpoints de mutação exigem JSON e checam origem.
write_filesem interpolação de shell — paths com$, crase ou aspas são literais.- Sidecar do firewall com limites de CPU/memória/PIDs e imagem fixada;
reaplimpa sidecars/redes órfãos e usa atividade (últimoexec) em vez de idade.
🖥️ App de macOS
- Nada roda mais na thread principal — a janela não engasga a cada atualização.
- Erros visíveis: falhas (imagem inexistente, etc.) aparecem num aviso fixo com a causa; snapshot mostra a referência criada.
- A tela "OrbStack não está rodando" só aparece quando o motor está mesmo inalcançável.
- O app agora exige de fato macOS 13+ (antes o binário pedia 26 sem avisar). Apple Silicon.
🧪 Qualidade
- CI compila o app num runner macOS (e confere o macOS mínimo), roda
staticchecke o race detector. - Testes: 14 → 23 funções, incluindo verificações ao vivo (watchdog, path com metacaracteres, anti-SSRF, reap).
- Versão com fonte única (CLI, MCP e app sempre iguais);
.mcp.jsonportável. - Manual técnico atualizado (embutido no app).
⬇️ Instalar
- App (macOS 13+, Apple Silicon): baixe o
Peapod.dmgabaixo, arraste para Aplicativos e, na primeira abertura, botão direito → Abrir (app assinado ad-hoc, não notarizado). Ou:brew install --cask peapod. - CLI + servidor MCP:
brew tap andre28abr/peapod && brew trust andre28abr/peapod && brew install peapod - Requer OrbStack (ou Docker) rodando.
📖 Manual técnico · 🫛 Guia para todos
AGPL-3.0 © André Augusto Azarias De Souza
Peapod v0.2.0 🫛
Peapod v0.2.0 🫛
Sandboxes isolados, descartáveis e auditados para a IA (ou você) rodar código não-confiável — agora com firewall de egresso à prova de bypass e manual embutido.
✨ Novidades desde a v0.1.0
- 🔒 Firewall de domínio à prova de bypass —
sandbox create --allow d1,d2coloca o sandbox numa rede Docker--internal(sem rota para fora) e sobe um proxy sidecar como a única saída. Mesmo um processo que ignoreHTTP(S)_PROXYnão tem rota — o allowlist não é burlável. Tudo é criado e destruído junto com o sandbox. - 📖 Manual no app (menu Ajuda → "Manual do Peapod"): renderizado em Markdown, com aba "Para todos" (didática, com diagramas) e "Técnico".
- 🎬 GIF de demo real no README.
- 🧪 Suíte de testes cobrindo firewall, parsers da CLI e a lógica do núcleo (auditoria/reap/prune).
- 🍺 Homebrew:
brew tap andre28abr/peapod && brew trust andre28abr/peapod && brew install peapod.
⬇️ Instalar (macOS)
- Baixe o
Peapod.dmgabaixo (em Assets). - Abra o
.dmge arraste o Peapod para Aplicativos. - Na primeira vez, clique com o botão direito em Peapod → Abrir → Abrir.
App assinado ad-hoc (não notarizado pela Apple), então o macOS pede essa confirmação uma vez. Requer OrbStack (ou Docker) rodando.
🔧 Por dentro
- Núcleo em Go com a costura
Driver— backendsoci(Docker/OrbStack),apple-container(microVM) emock. - Servidor MCP (12 ferramentas), CLI e dashboard web.
- O proxy do firewall roda um binário linux estático do peapod, embutido no app e construído pela fórmula.
📖 Manual: docs/MANUAL.md · 🫛 Guia para todos: docs/GUIA.md
AGPL-3.0 © André Augusto Azarias De Souza
Peapod v0.1.0 🫛
Peapod v0.1.0 🫛
Sandboxes isolados, descartáveis e auditados para a IA (ou você) rodar código não-confiável — com rede desligada por padrão, allowlist de domínios e trilha de auditoria de tudo que rodou.
⬇️ Instalar (macOS)
- Baixe o
Peapod.dmgabaixo (em Assets). - Abra o
.dmge arraste o Peapod para a pasta Aplicativos. - Na primeira vez, clique com o botão direito em Peapod → Abrir → Abrir.
O app é assinado ad-hoc (não notarizado pela Apple, que exige conta paga de desenvolvedor), então o macOS pede essa confirmação uma única vez. Depois, abre com duplo-clique normalmente.
Requer OrbStack (ou Docker) rodando.
✨ Destaques
- App nativo de macOS (pt-BR): templates de 1 clique, executar comandos, snapshots, pause/resume, gráficos de CPU/memória ao vivo e um Manual embutido — com aba "Para todos" (com diagramas) e "Técnico".
- Servidor MCP (12 ferramentas): agentes como o Claude Code criam, executam e descartam sandboxes sozinhos.
- CLI completa e dashboard web.
- Seguro por padrão: sem rede, allowlist de egresso, limites de CPU/mem/PID e timeout de exec.
- Auditoria: todo comando registrado e revisável (
sandbox history). - Snapshots: snapshot / fork / diff / prune. Ciclo de vida: pause / resume, auto-pause de ocioso, reap por idade.
🔧 Por dentro
- Núcleo em Go com a costura
Driver— backendsoci(Docker/OrbStack),apple-container(microVM) emock. - Testado (firewall, parsers da CLI, lógica do núcleo) com CI a cada push.
📖 Manual: docs/MANUAL.md · 🫛 Guia para todos: docs/GUIA.md
AGPL-3.0 © André Augusto Azarias De Souza