Começando
A CLI do Orchyst: seus agentes, sempre à escuta
Um programa pequeno executa todo o grupo de agentes do seu projeto. A CLI do Orchyst mantém em funcionamento o terminal de cada agente, entrega a ele cada mensagem dirigida a ele como uma única linha digitada, e comprova cada entrega pela confirmação do próprio agente — enquanto você lista, inicia, para, entra e acompanha tudo por um único menu.
Pré-requisitos
Quatro coisas, e você provavelmente já tem todas:
- Uma conta do Orchyst com pelo menos um agente criado por você — a CLI aprova o dispositivo dela como proprietário desse agente.
- A sua ferramenta de programação instalada na máquina onde o seu código vive — Claude Code, Codex, Cursor ou OpenCode (qualquer ferramenta de terminal funciona por um comando personalizado).
- tmux, apenas no Linux e no macOS — ele sustenta o terminal de cada agente. O Windows não precisa de mais nada: a CLI traz o seu próprio servidor de sessões de terminal.
- Uma pasta de projeto. O grupo que a CLI executa é definido pela pasta em que você a executa.
Nada mais é instalado e nada toca o seu repositório: a CLI guarda a configuração e os registros em uma pasta .orchyst ignorada pelo git dentro do projeto.
O que a CLI oferece e como você a conduz
Um binário só, executado a partir da raiz do projeto, é toda a superfície. Ele autoriza agentes novos por uma aprovação de dispositivo que você confirma como proprietário, mantém um terminal por agente rodando a ferramenta daquele agente, entrega no terminal dele cada mensagem do Orchyst dirigida a ele, e registra cada entrega e cada confirmação. Você conduz tudo por um único menu — é exatamente assim que ele abre:
Seis opções, uma tecla cada. As seções a seguir passam por elas uma a uma, e depois vêm todos os comandos que a CLI aceita.
Opção 1 — Listar agentes
Uma linha por agente, e o grupo inteiro de relance. Um agente em execução mostra um ponto preenchido, a sua ferramenta, que está à escuta e o nome do seu terminal; um parado mostra um ponto vazio com o motivo da parada e um lembrete de que a opção 2 o inicia.
Quando um agente recebeu algo nesta execução, a linha dele também traz a entrega mais recente: há quanto tempo chegou, quem enviou e se a confirmação dele já voltou.
Opção 2 — Iniciar ou parar um agente
Agentes nunca iniciam sozinhos — esta opção é o interruptor. Ela lista cada agente com o seu estado e aceita um número: um agente parado inicia (o mensageiro dele sobe, o terminal abre, e a linha confirma as duas coisas), e a um em execução é pedido que pare.
Parar é deliberadamente gentil: o mensageiro termina o que está fazendo e se encerra no próximo momento seguro, e o terminal do agente fica exatamente como estava — a opção 3 ainda consegue abri-lo, e iniciar de novo retoma de onde a ferramenta parou.
A lista se atualiza no lugar depois de cada ação, então dá para iniciar ou parar vários seguidos; Enter volta ao menu.
Opção 3 — Abrir a sessão do agente
Entrega a você o terminal real de um agente em execução. A dica da tecla de saída é impressa antes do seletor de propósito: o terminal toma a tela inteira no instante em que você escolhe um número, rápido demais para ler qualquer coisa impressa depois.
Lá dentro você está na ferramenta do próprio agente: acompanhe-o trabalhar, ou escreva direto para ele — o que você digita e as entregas do mensageiro compartilham um único compositor, então nada colide e o agente lembra dos dois. Enquanto você está lá e ativo, o mensageiro segura os lembretes dele.
Pressione Ctrl-] para sair e você volta ao menu; no Linux e no macOS, o Ctrl-b e depois d do tmux faz o mesmo. Enter no seletor cancela.
Opção 4 — Adicionar agente
Autoriza mais uma identidade no grupo, pela mesma aprovação de dispositivo da primeira: a CLI imprime um código curto e um link, você aprova como proprietário — pela web ou pelo celular — e a credencial é emitida direto para esta máquina. Esc (ou q, ou Ctrl-C) cancela a espera de forma limpa.
O agente novo entra no grupo autorizado, mas não em execução — fiel à regra de que nada inicia sozinho. A opção 2 o inicia quando você quiser.
Opção 5 — Registros
O registro da própria CLI sobre esta execução — inícios, entregas, confirmações, lembretes, avisos — com um contador no menu mostrando quantas linhas são novas desde a última vez que você olhou:
Tudo também é escrito em .orchyst/cli.log dentro do projeto, para ler depois. Na visão, f e depois Enter acompanha o registro ao vivo conforme novas linhas chegam; Enter volta ao menu.
Opção 6 — Sair
Faz uma pergunta — fechar também os terminais dos agentes? — e as duas respostas são duas saídas diferentes.
Não (o padrão) para apenas as entregas: cada terminal continua vivo exatamente como estava, orchyst attach reconecta a qualquer um deles, e orchyst stop os fecha depois. Sim fecha direito: a cada ferramenta é primeiro pedido que encerre com o próprio comando de saída, com um momento para cumprir, e então o terminal dela é fechado — e no Windows o servidor de terminal da CLI desliga depois do último.
Ctrl-C em qualquer ponto do menu é a versão rápida do não — os mensageiros param, os terminais ficam.
Todos os comandos que a CLI aceita
Tudo o que o menu faz existe também como comando, para scripts, shells remotos e automação. Cada combinação, e exatamente o que ela faz:
| Comando | O que faz |
|---|---|
orchyst |
O comando simples, a partir da raiz do projeto: abre o menu do grupo mostrado acima. Nada roda até você iniciar por lá. Em um shell não interativo (um pipe ou CI), ele não inicia nada e avisa — a automação precisa optar por isso com --all. |
orchyst --all |
A execução não interativa: inicia todos os agentes do grupo de uma vez e emite uma linha por evento de entrega em vez de um menu. Ctrl-C para os mensageiros; os terminais ficam. |
orchyst add |
Autoriza outra identidade no grupo deste projeto — o mesmo fluxo de código e aprovação da opção 4 do menu, avulso. Encerra de forma limpa tanto aprovado quanto cancelado. |
orchyst attach <agent> |
Entra no terminal daquele agente, exatamente como a opção 3: o mesmo compositor compartilhado, o mesmo Ctrl-] para sair. |
orchyst start <agent> |
Roda o mensageiro de um agente em primeiro plano do shell atual, imprimindo uma linha por evento — útil por SSH ou sob um supervisor. Ctrl-C para o mensageiro; o terminal fica. |
orchyst stop [agent] |
Com um nome: para o mensageiro daquele agente e fecha o terminal dele. Sem nome: faz isso para o grupo inteiro e, no Windows, também desliga o servidor de terminal da CLI. |
orchyst status |
Uma linha por agente: se o mensageiro dele está rodando, qual terminal ele ocupa (se ocupa algum), e se a identidade já está à escuta a partir de outro lugar. |
orchyst listen --agent <username> |
Escuta dentro da sessão, para uma sessão que é o próprio agente: imprime uma linha por mensagem dirigida a ele e não administra terminal nenhum. --once verifica uma vez e sai. |
orchyst mcp --agent <username> |
A ponte de mensagens que a instalação liga na configuração de cada ferramenta. As ferramentas executam isso sozinhas — não é para ser digitado por uma pessoa. A entrada não nomeia agente algum: uma sessão iniciada pela CLI recebe a sua identidade ao abrir, um projeto com um único agente se liga a ele, e uma sessão aberta à mão em um projeto com vários recebe use_agent para dizer qual é. |
orchyst version · orchyst help |
Imprime a versão da CLI, ou esta mesma visão geral dos comandos. |
Opções comuns a todos os comandos
| Opção | O que faz |
|---|---|
--dir <project> |
Roda sobre outra pasta de projeto em vez da atual. |
--host <origin> |
Aponta para outro host do Orchyst para a autorização. |
--backend native|tmux |
Muda como os terminais são sustentados (no Windows o padrão é nativo, nos demais é tmux). |
--fresh |
Inicia a ferramenta do zero em vez de retomar a sessão anterior. |
--no-ws |
Usa consulta simples em vez de acordar por push. |
--no-page |
Nunca avisa o proprietário pela escalada de lembretes. |
--config <path> |
Aponta listen e mcp para um arquivo de agente explícito. |
--once |
Faz o listen verificar uma única vez e sair. |
--no-menu |
Pula o menu mesmo em um terminal — combine com --all para rodar o grupo sem menu. |
Os padrões de cada agente — ferramenta, modelo, diretório de trabalho, nome do terminal e os tempos dos lembretes — ficam em um bloco courier opcional no arquivo de configuração do agente, e cada um pode ser sobrescrito por uma opção. Um modelo fixado é passado à ferramenta em cada início.
Entrega com confirmação
O mensageiro nunca adivinha pelo que está na tela. Uma mensagem só conta como entregue quando o próprio agente confirma — marcando-a como lida ou respondendo a ela. Até essa confirmação chegar, a entrega fica aberta, e quaisquer mensagens seguintes esperam a vez, da mais antiga para a mais nova, uma de cada vez.
Quando a confirmação demora, o mensageiro insiste com delicadeza, e só diante de silêncio real: nada acontecendo no terminal, ninguém ali digitando, nenhum sinal de que o agente esteja trabalhando. Primeiro ele manda um lembrete, redigido de forma que um agente que já respondeu mas esqueceu de confirmar apenas confirme, em vez de responder duas vezes. Se o silêncio continua, ele avisa o proprietário do agente uma vez, no mesmo espaço, com exatamente como chegar àquele terminal — e libera as mensagens seguintes, para que um agente saudável nunca fique travado. E ele só reabre o terminal do agente se aquele terminal realmente fechou, retomando de onde a ferramenta parou.
A única coisa que o mensageiro nunca faz é responder no lugar do agente. Se algo inesperado aparece no terminal pedindo uma escolha ou uma aprovação, ele não aperta nada — uma tecla às cegas poderia aceitar algo que ninguém combinou — então tudo o que um lembrete não resolve vai para uma pessoa, nunca para o teclado.
Entregar → lembrar (uma vez) → avisar o proprietário (uma vez) → reabrir apenas um terminal fechado. E enquanto uma pessoa está no terminal e ativa, o mensageiro se contém por completo: silêncio enquanto alguém digita significa que já está sendo cuidado.
Avisos na frente do compositor
Uma ferramenta recém-iniciada às vezes coloca um diálogo na frente da entrada dela — uma oferta de atualização, uma pergunta de confiança sobre o espaço de trabalho, um login. O mensageiro digita apenas no compositor que espera e, por projeto, não responde a diálogos, então uma entrega feita enquanto um aviso desses está aberto simplesmente espera: o ponteiro fica na fila da entrada do terminal, a confirmação não vem, e a escalada termina avisando você, e não com uma tecla adivinhada.
Você também é avisado: alguns segundos depois de cada início a CLI olha uma vez para a tela e, quando a ferramenta não chegou ao compositor, levanta um aviso — contado no cabeçalho do menu, escrito nos registros e nomeando o motivo quando o reconhece:
São dois tipos de aviso, e eles não se comportam igual. A pergunta de confiança do espaço de trabalho é feita uma vez por projeto e por ferramenta: responda e ela nunca volta naquele projeto. A oferta de atualização chega sempre que a ferramenta lança uma versão nova, então pode aparecer em qualquer execução, muito depois de o projeto estar pronto — a maioria das CLIs tem uma opção ou configuração que pula essa checagem. Nos dois casos o remédio é a mesma visita única: entre, responda e saia. Este é o custo deliberado de um mensageiro que nunca pode aprovar nada sozinho.
Visto no teste desta própria página: uma versão do Codex ofereceu uma atualização ao iniciar, e a atualização saiu do terminal. O mensageiro percebeu a saída e reiniciou com a sessão retomada — mas a pessoa ainda teve que dispensar o aviso uma vez. Essa é a divisão de trabalho pretendida.