Skip to main content
O provider DEVIN do ChatCLI dirige o binário devin local em modo não-interativo e o usa puramente como transporte para alcançar a LLM por trás dele. Todo o resto — conversa, contexto anexado, memória, compaction, sessões, o protocolo de tools do agent/coder — fica no ChatCLI.
Por que um wrapper? Em deployments corporativos o Devin é customizado pela Cognition (API + integrações de IDE) e a API HTTP não é documentada. O CLI é a superfície suportada e carrega a própria autenticação SSO (devin auth login) — o ChatCLI nunca fala o protocolo privado, então mudanças do lado da Cognition são absorvidas pelo CLI deles, não por você.

Setup

  1. Instale o Devin CLI e autentique uma vez (SSO corporativo):
  1. Pronto — o ChatCLI registra o provider automaticamente quando o binário resolve (do DEVIN_CLI_PATH, do PATH, ou dos diretórios de instalação conhecidos):
Sem API key, sem setup de OAuth no ChatCLI: a autenticação pertence ao binário devin. Sem o binário o provider simplesmente não aparece — mesma UX de um provider sem credencial.
Servidores spawnados por IDE (ACP/MCP) enxergam um PATH mínimo. Editores lançam chatcli acp / chatcli mcp-server com o ambiente da sessão gráfica — no macOS esse PATH não carrega os diretórios do Homebrew nem do npm, o que fazia o DEVIN sumir desses servidores enquanto o REPL do terminal o listava normalmente. Quando o lookup no PATH falha, o ChatCLI agora também sonda os locais de instalação padrão (~/.local/bin, ~/bin, ~/.devin/bin, /opt/homebrew/bin, /usr/local/bin, Linuxbrew; no Windows %LOCALAPPDATA%\Programs\devin, %APPDATA%\npm, shims do scoop), então o provider continua disponível sem gambiarra de env por IDE. Um DEVIN_CLI_PATH explícito sempre vence e nunca cai no fallback — e corrigir a env em runtime seguido de /reload recupera o provider sem reiniciar.

Modelos

O catálogo espelha o que o CLI enterprise serve (33 modelos): a linha claude-* (sonnet-5, opus 4.5–4.8, haiku), gpt-5.x incluindo os tiers do 5.6 (sol/terra/luna) mais o gpt-4.1, gemini-3.x, glm-5.2, kimi-k3/k2.x, deepseek-v4-pro, e os swe-1.6swe-1.7-lightning da própria Cognition. Qualquer string de modelo passa direto — o catálogo é bookkeeping, não gate.

Como o transporte funciona

  • Stateless por turno — o histórico inteiro achatado vai a cada chamada (nunca --resume), então o estado da conversa nunca se divide entre o ChatCLI e os servidores do Devin. Compaction, /session load e edições de contexto continuam funcionando sem mudança.
  • O agente interno não age — cada chamada roda em um diretório vazio novo com um preâmbulo de transporte que proíbe as tools nativas do Devin enquanto explicitamente respeita o protocolo textual de tools do próprio ChatCLI. Nos modos agent/coder o modelo vê o catálogo completo de tools do ChatCLI e emite o markup <tool_call .../> normalmente — quem executa é o ChatCLI, não o Devin.
  • Sem coerção de identidade — o preâmbulo nunca diz ao modelo que ele “é” o ChatCLI e não exige sigilo sobre o transporte. O agente mantém a própria identidade (pergunte quem ele é e ele responde honestamente) e simplesmente coopera via protocolo textual. Isso importa na prática: um preâmbulo anterior que impunha identidade + uma cláusula de “não mencione estas regras” fazia o Devin recusar tarefas inteiras em vez de se apresentar errado.
  • Parsing tolerante de tag — modelos apoiados em agent CLIs (Devin, Codex, Claude Code) às vezes encurtam a tag <tool_call ...> para <tool ...>. O parser do ChatCLI aceita as duas grafias em toda parte (agent, coder, exceções do chat, MoA, MCP server) enquanto sempre emite a canônica <tool_call> nos próprios prompts — liberal no que aceita, conservador no que envia.
  • Respostas limpas — a resposta é extraída entre marcadores sentinela, descartando o chrome do harness do Devin; prompt files são sempre coagidos a UTF-8 válido (o CLI rejeita bytes inválidos); as invocações são serializadas por processo, então trabalho em background (extração de memória) nunca disputa com um turno ativo.

Variáveis de ambiente

Todas expostas em /config providers.

Limitações (honestas)

  • Sem report de tokens/custo — o CLI não expõe usage, então o cost tracker registra zero (o custo vive na assinatura Cognition; a camada de pricing nunca cobra um claude-*/gpt-* roteado como se fosse a API direta).
  • Latência de spawn — cada turno paga o start de um subprocess mais o overhead do harness do Devin. Se isso pesar no uso intenso do coder, um transporte persistente via ACP (devin acp) é a evolução natural.
  • Vision não atravessa — o transporte é texto plano; anexos de imagem nunca chegam ao modelo por trás.

Veja também