← Portfólio

Open source · estudo de caso

openCate

Um fork do Cate, IDE em canvas infinito, com foco em acompanhar vários agentes de código ao mesmo tempo e passar contexto entre eles.

TipoOpen source
PapelCamada de orquestração de agentes, companion móvel e ferramentas de release sobre o Cate
PeríodoAgo–Set/2026 · em desenvolvimento
EstadoEm desenvolvimento
TecnologiasElectron · TypeScript · React · Node.js · PWA · Vitest · Playwright

O projeto em poucas palavras

O Cate é uma IDE em que terminais, editores e navegadores ficam soltos num canvas infinito — pensada para quem roda vários agentes de código (Claude Code, Codex e outros) em paralelo. O openCate parte dele e investe numa pergunta específica: quando há cinco agentes trabalhando ao mesmo tempo, como saber quem terminou, quem travou, quem precisa de resposta e como passar o que um descobriu para o outro?

O ponto de partida

Com vários agentes abertos, o trabalho vira vigilância: alternar entre terminais para ver qual acabou, perder o momento em que um pediu permissão, copiar e colar arquivos e diffs de uma sessão para outra, ou não lembrar por que uma sessão foi iniciada. Faltava uma camada que transformasse esse conjunto de terminais em algo acompanhável.

O que acrescentei

Ver o que está acontecendo

O Cate já indica se cada agente está trabalhando, esperando ou concluído. Sobre isso, acrescentei uma visão de atenção que reúne os agentes que aguardam resposta ou terminaram, o aviso de execuções paradas sem saída, minigráficos de atividade por terminal e o uso e a duração de cada execução. Um resumo compacto do estado do workspace fica na barra lateral.

Organizar muitos terminais

Terminais podem receber estrela, etiquetas e cor de destaque, persistidos entre sessões. A paleta de comandos permite circular por favoritos, por etiqueta, por agente e por worktree. Painéis podem ser estacionados sem matar os terminais que continuam rodando.

Orquestrar agentes

Uma árvore de missão ao vivo mostra os agentes envolvidos, a atividade de ferramentas e os controles dos workers. Um compositor global envia a mesma instrução a vários agentes, e perfis de lançamento estruturados definem como cada um inicia. Gemini CLI, Copilot CLI e Aider foram registrados junto aos demais.

Um barramento de contexto explícito permite enviar um arquivo ou um diff de um terminal para outro agente, e as entregas aparecem como ligações no canvas. Um histórico unificado guarda as sessões, com replay, e notas persistentes ficam associadas a cada projeto e worktree.

Acompanhar de longe, com segurança

Um companion web instalável (PWA) e um relay opcional, que pode ser hospedado pela própria pessoa, permitem ver o andamento pelo celular. O protocolo usa criptografia de ponta a ponta, pareamento por convite e sessões curtas. As leituras seguem uma lista explícita e não incluem o conteúdo dos terminais; as poucas ações permitidas exigem uma aprovação criada no desktop, com validade curta e uso único.

Como decidi mexer numa base grande

Antes de escrever código, comparei o Cate com outros projetos parecidos — Paseo, Claude Squad, Nimbalyst e TermCanvas — e registrei a decisão num documento de arquitetura. O Cate ganhou por implementar o requisito mais difícil (um canvas infinito com terminais persistentes de verdade) e por ter licença que permite um derivado, com os créditos preservados.

A regra de trabalho foi adicionar módulos novos e cobri-los com testes antes de mexer no comportamento do núcleo. Isso incluiu testes ponta a ponta do ciclo de vida do terminal, do isolamento entre canvases e das janelas destacadas, além de verificações de CI que rejeitam credenciais rastreadas e estado local da máquina, conferem a matriz de plataformas e testam a durabilidade de sessões com tmux em runners reais.

Estado atual

O openCate está em desenvolvimento, em versão beta, e este repositório ainda não tem versões publicadas. O Cate original segue evoluindo por conta própria; para uso diário, ele é a escolha indicada. O que este fork mostra é o desenho de uma camada de orquestração e de um canal móvel seguro sobre um projeto de terceiros.

Um plano de workspaces remotos na nuvem está documentado, mas ainda não foi implementado.

O que aprendi

Contribuir com um projeto grande é mais sobre respeitar as fronteiras dele do que sobre adicionar recursos: decidir por escrito, preservar a licença e os créditos, acrescentar sem quebrar. E, em qualquer canal remoto que toque ferramentas de desenvolvimento, a regra mais útil foi a mais restritiva: listar o que pode ser lido, exigir aprovação humana para agir e deixar o resto de fora.

Uma ideia em movimento?

Vamos transformar a próxima pergunta em algo que funciona.

Conversar sobre um projeto ↗