Terminais e agentes
Um painel de terminal é um terminal de verdade: xterm.js na frente, um PTY nativo (node-pty) atrás, renderizado por WebGL. O que roda no seu shell roda aqui.
Abrindo um
⌘T abre um terminal no centro da vista. Ele começa na pasta do workspace, com o seu shell e o seu ambiente — o mesmo PATH, o mesmo profile, as mesmas ferramentas.
# Nada de especial é necessário. A CLI do seu agente, do jeito que você já roda:
claude
codex
Splits
No TerminalMap, ⌘D divide o terminal em foco para a direita, e ⇧⌘D, para baixo. O painel novo começa na pasta em que o antigo está agora, mesmo depois de um cd. ⇧⌘↩ amplia um split para a área toda e volta, e ⌥⌘← ⌥⌘→ ⌥⌘↑ ⌥⌘↓ andam entre eles.
Clicar no ✕ de um terminal, de um split ou de um grupo fecha na hora, sem confirmação, o que quer que esteja rodando ali.
Agentes são apenas CLIs
O Catenary não embute modelo e não intermedia os seus prompts. O agente que você roda é a CLI que você instalou, autenticada do jeito que você já autentica. O que o canvas acrescenta é um nome, uma posição e fios até os colegas.
As credenciais de provedor do painel de agente embutido ficam globalmente em userData/pi-agent/auth.json e são espelhadas no .cate/pi-agent/ de cada workspace.
Ler o estado de relance
Um painel conta o que está fazendo sem ser aberto:
- a aba mostra o nome do agente e, num painel de tarefa, a branch dele;
- um agente trabalhando faz a linha de status brilhar em varredura;
- um comando que terminou e um agente esperando resposta têm, cada um, o seu estado de atividade no nó.
Links no terminal
Segure ⌘ e clique num caminho:linha:coluna que um agente imprimiu, e o arquivo abre no editor naquela linha e coluna.
Links da web funcionam do mesmo jeito. Por padrão eles abrem no navegador do próprio Catenary; Configurações, Browser, Open terminal links pode mandá-los para o navegador do sistema, ou deixar só o localhost dentro do app. Segure ⇧⌘ e clique para abrir o link no outro lugar, e o botão direito sobre ele oferece Open in Catenary e Open in External Browser.
Depois de reiniciar
Reabra o Catenary e cada terminal volta com o que estava mostrando, seguido de uma linha apagada --- restored session --- e de um shell novo.
Quando o Catenary sabe em que conversa um agente estava, ele a retoma sozinho: claude --resume <id>, codex resume <id> e o equivalente para os outros agentes que ele conhece. Quando só sabe qual agente o terminal roda, ele começa uma conversa nova com ele.
Feito para aguentar
Um comando que inunda o terminal de saída não o trava: o Catenary pausa o processo enquanto o terminal alcança. Se a placa de vídeo perder o contexto WebGL, o terminal passa para um renderizador mais lento e volta ao WebGL assim que puder.
Falar com os colegas
Um terminal conectado a outro fala com ele pela CLI catenary, disponível dentro de todo painel de terminal:
catenary list # colegas, boards e arquivos conectados
catenary ask "Codex 1" "Assume o N+1 da query do dashboard"
catenary check "Codex 1" # últimas linhas, sem interromper
catenary check "Codex 1" 60 # número de linhas personalizado
ask entrega um prompt. check lê sem interromper — use enquanto o colega está no meio de um turno, em vez de mandar o mesmo prompt duas vezes.
Por padrão, agentes da mesma sessão se alcançam sem fio e sem cartão de confirmação. catenary ask --no-wait "Codex 1" "…" passa o trabalho adiante e volta na hora, em vez de esperar a resposta. Para agentes de outras sessões, veja fios de conexão.
Boards compartilhados
Boards são anotações persistentes que vários agentes leem e complementam. Um terminal só vê um board quando um fio liga os dois (veja boards):
catenary board list
catenary board read "Spec"
catenary board append "Spec" "Refatorei /auth; tokens.ts é o próximo"
São o lugar certo para uma decisão que precisa sobreviver à janela de contexto de um agente.