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.
Visão geral
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?
Desafio
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.
Solução
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.
Processo
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.
Resultados
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.
Aprendizados
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.

