Local-firstQuem impõe as regras é o runtime, não o prompt

Pare de conversar com um agente. Comande um esquadrão.

O Maegor é um ambiente de desenvolvimento agêntico: terminal multipainel, harness de agentes e orquestrador de missões em um único aplicativo desktop. Entregue a ele um repositório e uma missão em linguagem comum, e ele planeja o trabalho, monta um esquadrão e dá a cada agente seu próprio worktree e um terminal visível.

Linux hoje · macOS e Windows suportados na arquitetura · 424 testes, sem rede, sem créditos

maegor.notes-service add auth, migrate the storeflaky test sweep+running$0.418PauseKillRun1 approval
1architectdecompose the missionrunning
› read docs/ARCHITECTURE.md
docs/adr/0007-lease-intersection.md
proposing 12 tasks · 4 parallel groups
✓ graph validated · 0 cycles
handing off to the coordinator
› _
claude-code · pid 2419300:04:12
2backendimplement store::leasesrunning
› cargo build -p maegor-core
crates/maegor-core/src/store/leases.rs
Compiling maegor-core v0.8.0
✓ Finished dev in 4.21s
lease crates/** held
› _
codex · pid 2420700:03:48
3frontendbuild the pane treerunning
› pnpm typecheck
apps/desktop/src/components/PaneTree.tsx
+148 −22
✓ no errors
preview reloaded on :5173
› _
claude-code · pid 2423100:03:02
4migrationsmigrate schema v9 → v10waiting
› maegor db plan v9 → v10
migrations/0009_leases.sql
dry run: 3 statements
! write outside declared scope
approval requested
waiting…
codex · pid 2424400:01:19
3 agents running3/5 adaptersnotes-service · feat/auth1 waiting for approval412 events$0.418Kill all

Roda as CLIs de agente que você já paga. A detecção executa cada binário, ela nunca confia em um arquivo de configuração.

Claude CodeCodexOpenCodeOpenRouterOllamaLM Studio
PAINÉIS

Cada agente ganha um terminal que você pode acompanhar.

Rode agentes de código de verdade, Claude Code, Codex, OpenCode, seja como a TUI deles em um painel que você controla, seja em modo headless com a saída traduzida em eventos tipados. Cada um roda no próprio PTY e no próprio grupo de processos do sistema.

  • PTY e grupo de processos próprios, então o kill switch alcança até os netos.
  • Pausa e retomada com SIGSTOP, por agente ou pela missão inteira.
  • Saída headless traduzida em eventos tipados, e ele avisa quando o mapeamento degrada.
architect
docs/adr/0007-lease-intersection.md
✓ graph validated · 0 cycles
backend
crates/maegor-core/src/store/leases.rs
✓ Finished dev in 4.21s
frontend
apps/desktop/src/components/PaneTree.tsx
✓ no errors · +148 −22
migrations
migrations/0009_leases.sql
! write outside declared scope
MISSÕES

Uma missão é um grafo. Não uma lista.

Dependências, grupos paralelos, validação de ciclos e de dependências órfãs em tempo de planejamento, antes de qualquer agente ser despachado. Três formas de executar:

Um time declarativo em YAML: papéis, modelos, globs de arquivo, gates e orçamentos. Validado no carregamento com o campo problemático nomeado, então um squad quebrado nunca chega ao despacho.

MISSIONbriefing em linguagem comumaceito
PLANgrafo de tarefas validado0 ciclos
LEASESchecagem de interseção de globs3 ativos
DISPATCHworktree + PTY por agente4 em paralelo
GATESrodam sobre o git diff real4 passam / 1 falha
INTEGRATEbloqueado até os gates passaremretido
CONTENÇÃO

Um agente que ignora as próprias instruções ainda assim não escapa delas.

Posse de arquivos, sandbox de caminhos, orçamentos e aprovação de comandos destrutivos são verificações no runtime em Rust, não linhas em um prompt.

Um worktree por agente

ISOLAMENTO

Um worktree git e um branch próprios para cada agente em execução. As escritas de um agente nunca chegam à sua árvore de trabalho.

Leases de arquivo

POSSE

Dois agentes que poderiam escrever no mesmo arquivo são recusados no despacho, por interseção de globs, não quando o merge desanda.

Gates de qualidade

INTEGRIDADE

Os gates rodam dentro do worktree do agente contra o git diff real. Um gate obrigatório que falha bloqueia a integração.

Kill switch

CONTROLE

Encerra grupos de processos inteiros, netos incluídos. Pausa e retoma por agente ou por missão.

Aprovações

CONSENTIMENTO

Comandos destrutivos, escritas fora de escopo e estouro de orçamento param o agente até você decidir. Um pedido expirado é uma recusa.

Watchdogs

SEGURANÇA

Um teto de tempo real e um timeout de heartbeat pegam um agente travado, encerram e registram o motivo. Nada é retomado automaticamente depois de um crash.

SQUADS

Times declarativos. Validados no carregamento.

Um squad é um arquivo YAML: papéis, modelos, globs de arquivo, gates, orçamentos. Quebre um campo e ele diz qual, antes de qualquer coisa rodar. Quatorze já vêm com o app.

Ver todos os squads
fullstack-factory.yaml7 agentes

Fábrica fullstack

Implementa uma feature inteira entre backend e frontend, em paralelo, contra um contrato que os dois lados tratam como congelado.

discoveryarchitecturebackendfrontendtestsreview+1
web-development.yaml12 agentes

Desenvolvimento web

Constrói uma feature web inteira, da descoberta à revisão. Sequencial de propósito, para cada handoff ser contra o que foi entregue de verdade.

discoveryarchitectureinterface-specbackendfrontendintegration-tests+6
bug-hunt.yaml8 agentes

Caçada a bugs

Varre o código por área em paralelo, depois triagem, correção e um teste que trava o resultado.

surveyhunt-webhunt-backendhunt-opstriagefix+2
bug-investigation.yaml5 agentes

Investigação de bug

Reproduz o defeito, corrige a causa raiz e trava com um teste.

reproducediagnosefixregression-testreview
security-audit.yaml4 agentes

Auditoria de segurança

Encontra vulnerabilidades, segredos e dependências arriscadas, depois corrige o que importa.

scan-codescan-depsfixreview
database-migration.yaml5 agentes

Migração de banco

Planeja, aplica e verifica a mudança de schema, com backfill e segurança de rollback.

planmigratebackfillverifyreview

Um core. Duas interfaces. Tudo compartilha a mesma máquina de estados.

A CLI e o aplicativo desktop rodam o mesmo core de domínio em Rust, o mesmo banco, o mesmo log de eventos append-only.

Terminal multipainel

Agentes concorrentes, cada um no próprio PTY e no próprio grupo de processos do sistema, cada um com um terminal vivo onde você pode digitar.

Grafo de tarefas

Dependências e grupos paralelos, com ciclos e dependências órfãs recusados em tempo de planejamento, antes de qualquer agente ser despachado.

Squads

Times declarativos em YAML: papéis, modelos, globs de arquivo, gates e orçamentos. Quatorze vêm com o app, do Solo de um agente ao web de doze.

Agentes

Uma CLI, um modelo, um conjunto de skills e um nível de esforço compostos em um especialista que você pode despachar de novo.

Skills

Uma capacidade instalável que se acopla a um agente e passa a valer na próxima execução dele.

Servidor MCP

Vinte e oito ferramentas sobre missões, tarefas, memória, artefatos, leases e gates, atrás de um token por missão. Toda ferramenta confere se o id pertence à sessão que chamou.

Adapters de agente

Claude Code, Codex e OpenCode conduzem os binários que você já tem. A detecção executa cada um, ela nunca confia em arquivo de configuração, e toda flag foi lida de um help local.

Workspace

Um painel é um contêiner, não um slot de terminal. Terminal, editor, explorador de arquivos e preview do navegador dividem a mesma grade.

Memória em três níveis

Missão, projeto e agente. O nível de projeto é o motivo de a segunda missão em um repositório sair mais barata que a primeira.

Log de eventos

Tipado e append-only sobre SQLite, pesquisável e filtrável por agente, tarefa, tipo, severidade e texto livre.

Telemetria de custo

Custo ao vivo por agente, com a origem etiquetada. Quando o provedor não reporta nada, a resposta é desconhecido, nunca $0.00.

Segurança no reinício

Sessões que o banco ainda acredita estarem rodando são marcadas como órfãs quando o projeto abre. Nada é retomado automaticamente depois de um crash.

Antes de você perguntar

Não. O Maegor conduz as CLIs de agente já instaladas na sua máquina, com os logins que já estão lá. Todo agente roda nas assinaturas e nos tokens que você já paga.

Os dois, e são o mesmo programa. Um core de domínio em Rust é compartilhado pelo binário maegor e por um aplicativo desktop em Tauri: mesma máquina de estados, mesmo banco SQLite, mesmo log de eventos.

Ele nunca tem o seu repositório. Cada agente em execução recebe um worktree git e um branch próprios, um lease sobre os arquivos que declarou e um conjunto de caminhos em sandbox. A integração fica bloqueada até os gates passarem.

Linux hoje. macOS e Windows são suportados na arquitetura, mas não testados. No Linux ele precisa de webkit2gtk, gtk3 e libsoup.

Dá. Um agente falso determinístico com seis comportamentos, sucesso, falha, travamento, pedido de aprovação, modificação de arquivos e emissão de eventos, roda a suíte inteira sem rede e sem gasto de LLM.

Seu time de engenharia está esperando.

Abra um repositório, descreva uma missão e veja quatro agentes trabalhando em paralelo, dentro das regras que você definiu.

Nenhum crédito é queimado na demo, um agente falso determinístico roda a suíte inteira.