Pular para o conteúdo principal
O modo /coder é especializado para tarefas de engenharia de software com ciclo de leitura, alterações e feedback. Ele dá mais rigorosidade que o /agent, porque o assistente segue um contrato de saída para que o ChatCLI execute ações com segurança (e semântica de reversão).

Quando usar

Use /coder para...

Alterações reais no repositório, rodar testes/lint/build automáticos, aplicar patches com rollback, iterar até resultado verificável.

Use /agent para...

Conversas de alto nível, escrita de texto, ideias, planos — sem executar código diretamente.

Fluxo de Engenharia


Orquestração Multi-Agent

O /coder inclui orquestração multi-agent ativada por padrão. O LLM orquestrador despacha agents especialistas em paralelo:
AgentFunção
FileAgentLeitura e análise de código (read-only)
CoderAgentEscrita e modificação de código
ShellAgentExecução de comandos e testes
GitAgentOperações de controle de versão
SearchAgentBusca no codebase (read-only)
PlannerAgentRaciocínio e decomposição de tarefas (sem tools)
ReviewerAgentRevisão de código e qualidade (read-only)
TesterAgentGeração de testes e cobertura
RefactorAgentTransformações estruturais (rename, extract, move)
DiagnosticsAgentTroubleshooting e investigação de erros
FormatterAgentFormatação e estilo de código
DepsAgentGerenciamento e auditoria de dependências
Agents CustomizadosPersonas de ~/.chatcli/agents/ registrados automaticamente
Cada agent possui skills próprias e executa em seu mini ReAct loop isolado. Múltiplos agents rodam simultaneamente via goroutines com semáforo configurável (CHATCLI_AGENT_MAX_WORKERS).
Desative com CHATCLI_AGENT_PARALLEL_MODE=false se necessário. Veja a documentação completa.

Contrato de Saída

O formato de resposta do assistente no /coder é obrigatório:
1

Reasoning

Antes de qualquer ação, o assistente escreve um bloco reasoning curto (2 a 6 linhas).
2

Tool Call

Se precisar agir, emite um tool_call name="@coder" args="..." com JSON nos args.
3

Sem comandos diretos

Nunca usa blocos de código ou comandos shell diretos — tudo passa pelo @coder.

Ferramentas e Dependência

O modo /coder utiliza o plugin @coder, que já vem embutido no ChatCLI — nenhuma instalação adicional necessária.
Verifique com /plugin list — o @coder aparece com a tag [builtin].

Subcomandos Suportados

SubcomandoDescrição
tree --dir .Listar árvore de diretórios
search --term "x" --dir .Buscar no codebase
read --file xLer arquivo
write --file x --content "..." --encoding base64Escrever arquivo
patch --file x --search "..." --replace "..."Aplicar patch
patch --diff "..." --diff-encoding base64Aplicar unified diff
exec --cmd "comando"Executar comando
git-status --dir .Status do Git
git-diff --dir .Diff do Git
git-log --dir .Log do Git
git-changed --dir .Arquivos alterados
git-branch --dir .Branch atual
test --dir .Rodar testes
rollback --file xReverter alteração
clean --dir .Limpar backups

Exemplo de Fluxo

1

Listar a árvore

tree --dir .
2

Buscar ocorrências

search --term "FAIL" --dir .
3

Ler arquivos relevantes

read --file cli/agent_mode.go
4

Aplicar patch

patch --file cli/agent_mode.go --search "..." --replace "..."
5

Rodar testes

exec --cmd "go test ./..."

Paralelizacao de Operacoes

O /coder maximiza paralelismo emitindo multiplos tool_calls em uma unica resposta quando as operacoes sao independentes. Por exemplo, ao precisar ler 3 arquivos, a IA emite 3 tool_call tags de uma vez em vez de uma por turno. Para tarefas complexas com 3+ operacoes independentes, a IA usa <agent_call> para despachar agents especializados em paralelo via goroutines.
Se perceber que a IA esta fazendo operacoes sequenciais que poderiam ser paralelas, lembre-a: “emita todos os tool_calls independentes em uma unica resposta”.

FAQ

Sim, é o formato recomendado:tool_call name="@coder" args='{"cmd":"read","args":{"file":"main.go"}}'
Quando a alteração envolve múltiplos trechos ou precisa de mais precisão. Aceita unified diff em text ou base64.
Não. O @coder é um plugin builtin — já vem embutido no binário. Se instalar uma versão customizada em ~/.chatcli/plugins/, ela prevalece sobre o builtin.
O @coder exec bloqueia padrões perigosos por padrão. Para comandos sensíveis, prefira usar os subcomandos Git e test.
Sim. Use read --max-bytes, --head ou --tail para controlar o tamanho da saída.