# Kabul

> App gratuito e de código aberto para macOS. Rode Claude Code, Codex, Gemini, Qwen e modelos locais em paralelo, cada um no seu git worktree, e troque de modelo sem perder a conversa.

Página: https://kabul.dev/pt-BR/ · English: https://kabul.dev/index.md · Documentação: https://valteracetto.github.io/kabul/pt-BR/ · Código: https://github.com/valteracetto/kabul

## Cada agente de código no seu melhor, lado a lado.

Rode Claude, GPT, Gemini, Qwen e modelos locais em paralelo, cada um no harness feito para ele, cada um no seu git worktree. Troque de modelo sem perder a conversa. Chame um amigo para a sessão. Continue pelo celular.

- Baixar para macOS: https://github.com/valteracetto/kabul/releases/latest
- Windows (beta): https://github.com/valteracetto/kabul/releases/latest
- GitHub: https://github.com/valteracetto/kabul
- Gratuito e de código aberto, licença MIT. macOS 14 ou mais novo, Apple Silicon e Intel.
- Conduz os CLIs de verdade: Claude Code, Codex, Antigravity, Gemini CLI, Qwen Code, OpenCode, Goose.

## Três coisas que o Kabul faz diferente

### O harness certo para cada LLM

Um modelo rende o que o laço de agente em volta dele deixa render. O Kabul roda cada modelo no harness feito para ele: Claude no **Claude Code**, GPT no **Codex**, Gemini no **Antigravity** ou no **Gemini CLI**, Qwen no **Qwen Code**, e o resto pelo **OpenCode** ou pelo **Goose**, pelo Agent Client Protocol.

Modelos locais são encaminhados pela família: um Qwen no LM Studio vai para o Qwen Code, um gpt-oss vai para o Codex. Você escolhe o modelo; o Kabul escolhe o harness e avisa quando precisou usar outro.

### Trocar de LLM ou de conta na mesma conversa, na mesma branch

Bateu no limite, quer uma segunda opinião ou um modelo mais barato para a parte chata? Escolha outro modelo na mesma conversa, mesmo de outro provedor ou de outra conta.

O Kabul guarda um transcript canônico e passa o bastão para o agente novo: as últimas mensagens e quem escreveu cada uma, as ferramentas usadas, o diff da branch e as suas notas em `.context/`. Mesmo worktree, mesma branch, os checkpoints continuam.

### Trabalhar com um amigo ao mesmo tempo, e pelo celular

Convide alguém para um workspace como **editor** ou **observador**. Os dois veem o agente ao vivo, mandam mensagens numa fila única, aprovam ferramentas (vale a primeira decisão) e digitam no mesmo terminal, com presença e autoria em cada mensagem.

O mesmo servidor leva todas as sessões do seu computador para o celular e avisa quando um agente precisa de uma decisão.

## A bancada em volta dos seus agentes

Os agentes de código já dão conta de várias coisas ao mesmo tempo. As ferramentas em volta deles, não: cada agente vive no seu CLI, uma tarefa por terminal, preso à mesa e aos modelos de um fornecedor só.

No Kabul cada tarefa ganha um **workspace**: um git worktree na sua própria branch, com portas, terminal e conversas próprios, para dez agentes trabalharem em dez coisas sem pisar um no outro. Você revisa o diff, deixa comentários para o agente, acompanha os checks e entrega o pull request na mesma janela.

## Tudo o que uma tarefa pede, numa janela só

- **Agentes**: Todas as conversas de todos os workspaces, com os subagentes, tokens e custo.
- **Uso**: Custo por dia, limites por conta e um aviso antes de bater em um.
- **MCP**: Um registro para todas as IAs e os tokens economizados por turno.
- **Barra de menus**: Limites e agentes rodando num relance.

- **Workspaces em paralelo com git worktree**: Uma tarefa, um worktree, uma branch. Dez portas reservadas por workspace, scripts de setup, run e archive, arquivos `.env*` copiados, status, fixados e quadro.
- **Chat com aprovações e plano**: Cada ferramenta vira um cartão: aprovar uma vez, sempre ou negar. Plan mode em todos os harnesses, nativo onde o CLI tem e emulado onde não tem.
- **Diff, PR e checks**: Diff unificado ou lado a lado, com comentários por linha que vão para o agente. Commit, push, abrir o PR, corrigir checks com os logs, merge e arquivar.
- **Checkpoints**: Um checkpoint antes de cada mensagem enviada, em refs privadas do git que não mexem na sua branch. Restaure os arquivos de qualquer ponto ou volte a conversa até ele.
- **Um terminal de verdade**: Um por workspace e terminais em aba inteira que já abrem o Claude Code, o Codex, o Gemini ou o OpenCode. No macOS as sessões sobrevivem ao app.
- **MCP compartilhado e por sessão**: O Kabul lê os servidores MCP que você já configurou em cada CLI e oferece todos a todos os agentes, sem mexer nas suas configs. Ligue e desligue por sessão.
- **Linear e GitHub**: Workspaces a partir de issues do Linear, fechadas pelo PR. GitHub pelo `gh`, com várias contas. Rotinas rodam um prompt num horário ou num evento do PR.
- **Uso, custos e limites**: Tokens e custo por workspace, modelo, conta e provedor; janelas de 5 horas, semana e mês; alertas e troca com um clique para uma conta com folga.
- **Modelos locais**: Acha servidores do LM Studio, Ollama, llama.cpp, vLLM e MLX, mostra o que cabe na memória e encaminha cada família para o harness que roda melhor.

## Agentes suportados

O Kabul conduz os CLIs de verdade, então você mantém o comportamento, as atualizações, os logins, as configurações e os servidores MCP de cada um.

| Agente | Fala por | Chat e ferramentas | Aprovações | Plan mode | Parar | Retomar | Várias contas | Modelos locais | Celular |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Claude Code | stream-json | confirmado | confirmado | confirmado (nativo) | confirmado | confirmado | confirmado | confirmado (API Anthropic) | confirmado (controle remoto nativo) |
| Codex | app-server | confirmado | confirmado | confirmado (nativo) | confirmado | confirmado | confirmado | confirmado (API Responses) | parcial |
| Antigravity | stream-json | confirmado | confirmado (regras do projeto) | parcial (reinicia para sair) | parcial | confirmado | confirmado | não disponível | confirmado (controle remoto nativo) |
| Gemini CLI | ACP | confirmado | confirmado | confirmado (nativo) | confirmado | confirmado | confirmado ¹ | parcial (gateways da API do Gemini) | parcial |
| Qwen Code | ACP | confirmado | confirmado | confirmado (nativo) | confirmado | confirmado | confirmado | confirmado (API OpenAI) | parcial |
| OpenCode | ACP | confirmado | confirmado | parcial (emulado) | confirmado | confirmado | ainda não confirmado | confirmado (OpenAI / Anthropic) | parcial |
| Goose | ACP | confirmado | confirmado | parcial (emulado) | confirmado | confirmado | confirmado | confirmado (API OpenAI) | parcial |
| Cursor | ACP | ainda não confirmado | ainda não confirmado | ainda não confirmado | ainda não confirmado | ainda não confirmado | ainda não confirmado | não disponível | ainda não confirmado |

Confirmado quer dizer que o CLI instalado rodou pelo Kabul. ¹ Perfis isolados funcionam; entrar com a conta Google pelo Kabul ainda não foi testado de ponta a ponta. Qualquer agente, e qualquer shell, também pode ser acompanhado e operado pelo celular pelo espelho do terminal.

Agentes e harnesses: https://valteracetto.github.io/kabul/pt-BR/guia/agentes

## As suas sessões no bolso

Um app instalável para iOS e Android, servido pelo seu próprio computador pelo Tailscale. Veja o que está rodando e o que espera por você, aprove ferramentas, leia o diff e os arquivos, acompanhe o terminal ao vivo, crie um workspace ou troque o modelo.

Notificações avisam quando um agente espera uma decisão. Visual de iOS no iPhone, Material 3 no Android, um código só.

O app do celular é uma PWA que você instala pelo navegador. As versões para as lojas estão no roadmap.

## Funcionando em poucos minutos

1. Baixe o `.dmg` e arraste o Kabul para Aplicativos. Você precisa de `git`, `tmux` e do GitHub CLI: `brew install git tmux gh`.
2. Instale pelo menos um agente, como o Claude Code ou o Codex. O Kabul também instala um CLI que falte.
3. Entre nos agentes e no GitHub em **Configurações › Contas**. O Kabul roda o login do próprio CLI e nunca lê os seus tokens.
4. Descreva uma tarefa e tecle `↵`. O Kabul cria o worktree e a branch e manda a mensagem para o agente.

Ler o início rápido: https://valteracetto.github.io/kabul/pt-BR/guia/inicio-rapido

## Feito para 100 workspaces e 30 agentes ao mesmo tempo

Só o workspace visível fica montado, os eventos chegam em lote por quadro, listas longas são desenhadas por blocos e um limite de agentes simultâneos põe os outros numa fila, com o workspace em foco na frente. Os orçamentos medidos rodam no CI, então uma regressão quebra o build.

| Métrica | Antes | Agora |
| --- | ---: | ---: |
| Trocar de workspace (p95) | 1.098 ms | 48 ms |
| CPU com 30 agentes emitindo | 100% | 8% |
| Quadros por segundo com 30 agentes | 9,7 | 60 |
| Tecla até o quadro (p95) | 178 ms | 19 ms |
| Abrir a conversa de 2.000 mensagens | 1.530 ms | 68 ms |
| Heap JS | 174 MB | 20 MB |

Interface, build de produção, 100 workspaces e 30 agentes sintéticos. Cargas sintéticas num Mac só; agentes de verdade emitem bem menos eventos.

Teste de carga do servidor (100 workspaces, 30 agentes falsos, 3 clientes): 6,5% de CPU em média, uns 24 MB de memória, 0,17 ms do evento ao cliente no p95.

Metodologia e relatórios completos: https://valteracetto.github.io/kabul/pt-BR/guia/desempenho

## Local e de código aberto

- O seu código fica na sua máquina. Os agentes falam com os provedores que você já paga, com os logins que você já tem. O Kabul nunca lê os seus tokens.
- Sem servidor próprio e sem telemetria.
- O servidor do celular só escuta no localhost e na sua tailnet, nunca na internet aberta. Os aparelhos pareiam com QR de uso único e chaves por aparelho guardadas no cofre do sistema.
- Convidados ficam presos a um workspace, os previews rodam em sandbox e segredos nunca vão para a linha de comando.
- Licença MIT. Leia o código, compile você mesmo, faça um fork.

Modelo de ameaças: https://valteracetto.github.io/kabul/pt-BR/guia/seguranca · Reportar uma vulnerabilidade: https://github.com/valteracetto/kabul/blob/main/SECURITY.md

## Kabul Cloud (em breve)

Workspaces rodando na nuvem, para os seus agentes continuarem trabalhando com o Mac desligado. Convide o seu time e acesse cada sessão de qualquer lugar, sem configurar o Tailscale.

- Os agentes seguem quando o computador dorme
- Convites sem Tailscale
- Feito para times

Entre na lista de espera: https://kabul.dev/pt-BR/#cloud

## Contribua

O Kabul é feito às claras. Issues e pull requests são bem-vindos.

- **Pegue uma primeira issue**: Tarefas pequenas e bem recortadas para conhecer o código. https://github.com/valteracetto/kabul/labels/good%20first%20issue
- **Leia o guia de contribuição**: Estrutura, comandos, commits, versões e como o CI funciona. https://github.com/valteracetto/kabul/blob/main/CONTRIBUTING.pt-BR.md
- **Traduza**: O app está em inglês e português. Cada texto mora num arquivo JSON por área, então um idioma novo é um pull request. https://github.com/valteracetto/kabul/tree/main/apps/web/src/i18n/locales
- **Reporte um bug**: Conte o que aconteceu, a versão e como reproduzir. https://github.com/valteracetto/kabul/issues/new
- **Reporte uma vulnerabilidade**: Falhas de segurança vão em particular, nunca numa issue pública. https://github.com/valteracetto/kabul/blob/main/SECURITY.md

### Apoie o Kabul

O Kabul é gratuito e de código aberto. Os patrocínios pagam o tempo dedicado a ele.

- GitHub Sponsors: https://github.com/sponsors/valteracetto

## Perguntas

### O Kabul é gratuito?

Sim, licença MIT. Você usa as suas assinaturas ou chaves de API dos agentes (Claude, ChatGPT, Google, modelos locais). O Kabul não revende nem intermedeia acesso a modelos.

### O meu código sai do computador?

Só o que os agentes mandam para os provedores deles e o que o `gh` manda para o GitHub, exatamente como se você rodasse esses CLIs. O Kabul não tem servidor próprio nem telemetria.

### O Kabul substitui os CLIs dos agentes?

Não. Ele conduz os CLIs de verdade (Claude Code, Codex, Antigravity e outros), então você mantém o comportamento, as atualizações, os logins, as configurações e os servidores MCP de cada um.

### Quais plataformas?

O macOS 14 ou mais novo (Apple Silicon e Intel) é a plataforma principal. O Windows 10 1809+ e 11 está em beta: as sessões de terminal ainda não sobrevivem ao fechar o app. Linux não tem pacote. O app do celular roda no iOS e no Android.

### Preciso do Tailscale?

Só para o celular, outras máquinas e colaboração. O servidor do celular escuta no localhost e na sua tailnet, nunca na internet aberta.

### Um amigo convidado vê os meus outros repositórios?

Não. O convite fica preso a um workspace. Mas um editor roda comandos com o seu usuário (terminal e aprovações), então só convide como editor quem você deixaria usar o seu computador.

### Tem app do celular nas lojas?

Ainda não. O app do celular é uma PWA que você instala pelo navegador; as versões para as lojas estão no roadmap.

### A interface está em português?

Sim, e em inglês. O app desktop, o app do celular, os menus e as notificações seguem o idioma do sistema; para escolher, vá em Configurações › Geral › Idioma.

Mais respostas nas perguntas frequentes: https://valteracetto.github.io/kabul/pt-BR/guia/faq

## Créditos

Criado por Valter Acetto · Feito com o Claude: https://github.com/valteracetto/kabul/blob/main/ACKNOWLEDGMENTS.md

Versão 0.9.0 · MIT · https://github.com/valteracetto/kabul/blob/main/LICENSE
