Pular para o conteúdo principal
O @coder e a suite de engenharia usada pelo Modo Coder (/coder). Ele fornece acoes para ler/procurar arquivos, aplicar patches com seguranca, rodar comandos e reverter alteracoes.
O @coder e um plugin builtin — ja vem embutido no binario do ChatCLI e funciona imediatamente, sem instalacao. Se precisar de uma versao customizada, basta colocar o binario em ~/.chatcli/plugins/ e ele prevalece sobre o builtin. Ao remove-lo, o builtin volta automaticamente no proximo /plugin reload.

Comandos suportados

Os comandos suportados sao (no formato do atributo args do <tool_call> ou uso direto). JSON em args e recomendado, por exemplo: args="{\"cmd\":\"read\",\"args\":{\"file\":\"README.md\"}}".
  • tree --dir . — Lista a estrutura de diretorios
  • search --term "x" --dir . — Busca por padroes em arquivos
  • read --file path — Le o conteudo de um arquivo
  • write --file path --content "base64" --encoding base64 — Escreve um arquivo (conteudo em base64, linha unica)
  • patch --file path --search "base64" --replace "base64" --encoding base64 — Patch via search/replace (base64 para evitar problemas de escape)
  • patch --diff "base64" --diff-encoding base64 — Patch via diff (multiplos trechos)
  • exec --cmd "comando" — Executa um comando no shell
  • test --dir . (ou --cmd "comando") — Executa testes
  • git-status --dir . — Status do repositorio
  • git-diff --dir . — Diferencas pendentes
  • git-log --dir . — Historico de commits
  • git-changed --dir . — Arquivos alterados
  • git-branch --dir . — Branches do repositorio
  • rollback --file path — Reverte uma alteracao que tenha gerado backup (.bak)
  • clean --dir . — Remove backups .bak (dry-run por padrao, use --force)

Rollback e Seguranca

Rollback

Use rollback --file x para reverter uma alteracao que tenha gerado backup (ex. file .bak).

Limpeza

Use clean --dir . para remover backups .bak (dry-run por padrao, use --force).

Exemplo de uso (no /coder)

No modo /coder, o assistente deve responder com um bloco reasoning e em seguida apenas um tool_call. Estes sao exemplos validos:
<!-- Ler UM arquivo (JSON) -->
<tool_call name="@coder" args='{"cmd":"read","args":{"file":"README.md"}}'/>

<!-- Rodar testes (auto) -->
<tool_call name="@coder" args='{"cmd":"test","args":{"dir":"."}}'/>

<!-- Ver diff -->
<tool_call name="@coder" args='{"cmd":"git-diff","args":{"dir":".","stat":true}}'/>

Notas

O @coder outorga poder de leitura/escrita em arquivos e execucao de comandos, tudo passivel de rollback quando solicitado. Use em repositorios confiaveis.
Por ser builtin, o @coder aparece em /plugin list com a tag [builtin]. Nao e possivel desinstala-lo via /plugin uninstall.

FAQ do Plugin @coder

Sim. O formato recomendado e JSON. Exemplo:
<tool_call name="@coder" args='{"cmd":"read","args":{"file":"README.md"}}'/>
Use quando precisar aplicar multiplos trechos ou quando o search/replace simples nao for suficiente. O diff pode ser text ou base64.
O @coder exec bloqueia padroes perigosos por padrao. Use --allow-unsafe apenas quando necessario e com supervisao.
Sim. Use read --max-bytes, --head ou --tail para evitar saidas muito grandes.