Skip to content

Releases

Peapod v0.3.0 🫛

Choose a tag to compare

@andre28abr andre28abr released this 11 Sep 03:38

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/fork aceitam allow (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_file sem 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; reap limpa sidecars/redes órfãos e usa atividade (último exec) 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 staticcheck e 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.json portável.
  • Manual técnico atualizado (embutido no app).

⬇️ Instalar

  • App (macOS 13+, Apple Silicon): baixe o Peapod.dmg abaixo, 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 🫛

Choose a tag to compare

@andre28abr andre28abr released this 26 Jun 14:53

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,d2 coloca o sandbox numa rede Docker --internal (sem rota para fora) e sobe um proxy sidecar como a única saída. Mesmo um processo que ignore HTTP(S)_PROXY nã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)

  1. Baixe o Peapod.dmg abaixo (em Assets).
  2. Abra o .dmg e arraste o Peapod para Aplicativos.
  3. 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 — backends oci (Docker/OrbStack), apple-container (microVM) e mock.
  • 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 🫛

Choose a tag to compare

@andre28abr andre28abr released this 26 Jun 13:12

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)

  1. Baixe o Peapod.dmg abaixo (em Assets).
  2. Abra o .dmg e arraste o Peapod para a pasta Aplicativos.
  3. 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 — backends oci (Docker/OrbStack), apple-container (microVM) e mock.
  • 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