# Agentes e Harnesses de Código com IA - GateLLM

> Conecte Claude Code, Codex CLI, OpenClaw, Cline, Cursor, Zed, Goose, Aider e mais de 25 agentes de código ao GateLLM — a base URL, o destino de configuração e a armadilha de cada harness em um só lugar.

Canônico: https://www.gatellm.io/pt-BR/coding-agents/

## Agentes e harnesses de código com IA
Aponte Claude Code, Codex CLI, OpenClaw, Cline, Cursor e mais de 25 outros agentes de código para o gateway com os mesmos três passos — cada um com seu destino exato de configuração e nomes de chave.
Todo agente de código de IA lê uma base URL e uma chave de API de algum lugar — uma variável de ambiente, um arquivo de configuração ou um painel de configurações. Esta página lista de onde cada harness as lê, qual protocolo ele fala e a armadilha que realmente pega as pessoas. As configurações completas para copiar e colar estão na documentação.
## Como nomear o modelo no gateway
Alguns harnesses fixam o próprio ID de modelo e o enviam literalmente. Se o modelo do seu gateway tiver outro nome, a primeira chamada retorna 404. Duas formas de alinhar:
Dê ao modelo do gateway exatamente o nome que o harness solicita — zero configuração extra.
Ou sobrescreva o harness para usar o nome do seu gateway pela variável de ambiente de modelo dele (por exemplo, ANTHROPIC_MODEL).
## Aponte qualquer agente de código de IA para o gateway
```
# Every agent is one base_url + one access key away
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic agents: root (no /v1)
export ANTHROPIC_API_KEY="<gateway access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI-compatible agents: /v1
export OPENAI_API_KEY="<gateway access key>"

# Codex CLI (~/.codex/config.toml) speaks the Responses protocol
# [model_providers.gatellm]
# base_url = "https://your-gateway.gatellm.io/v1"
# wire_api = "responses"
```
### `Authorization: Bearer <key>`
- SDK / framework: OpenAI · DashScope · genérico
- Prefixo Bearer não diferencia maiúsculas de minúsculas

### `x-api-key: <key>`
- SDK / framework: SDK Anthropic
- Authorization também é aceito

### `x-goog-api-key: <key>`
- SDK / framework: SDK Gemini
- Authorization também é aceito

## Matriz de compatibilidade de harnesses

### Agentes de terminal
Claude Code, Codex CLI, Gemini CLI, OpenClaw, opencode, Crush, Droid, Goose, Aider, Qwen Code, OpenHands, Kimi Code, Plandex, SWE-agent, Grok Build, Mistral Vibe, MiMo Code, ForgeCode, Codebuff
| Harness | Protocolo | Suporte | Destino da configuração | Nomes de chave / configurações | Documentação |
| --- | --- | --- | --- | --- | --- |
| Claude Code | Anthropic | Nativo | env vars | ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODEL | https://docs.gatellm.io/en/quickstart/claude-code-via-gateway |
| Codex CLI | OpenAI Responses | Nativo | ~/.codex/config.toml | base_url, env_key, wire_api | https://docs.gatellm.io/en/reference/clients-and-gateway-diffs |
| Gemini CLI | Gemini | Nativo | env vars | GOOGLE_GEMINI_BASE_URL, GEMINI_API_KEY | https://docs.gatellm.io/en/reference/clients-and-gateway-diffs |
| OpenClaw | OpenAI / Anthropic-compatible | Compatível com OpenAI | openclaw.json | models.providers.<id>.baseUrl, models.providers.<id>.apiKey | https://docs.gatellm.io/en/quickstart/anthropic-interop |
| opencode | OpenAI-compatible | Compatível com OpenAI | opencode.json | provider.<id>.options.baseURL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Crush | OpenAI / Anthropic-compatible | Compatível com OpenAI | crush.json | providers.<id>.base_url, providers.<id>.type | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Factory Droid | OpenAI / Anthropic-compatible | Compatível com OpenAI | ~/.factory/settings.json | customModels[].baseUrl, customModels[].provider | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Goose | OpenAI-compatible | Compatível com OpenAI | env vars | OPENAI_HOST, OPENAI_BASE_PATH, OPENAI_API_KEY | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Aider | OpenAI-compatible (LiteLLM) | Compatível com OpenAI | env vars | OPENAI_API_BASE | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Qwen Code | OpenAI-compatible | Compatível com OpenAI | env vars | OPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODEL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| OpenHands | OpenAI-compatible (LiteLLM) | Compatível com OpenAI | ~/.openhands/settings.json | base_url, model openai/ prefix | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Kimi Code CLI | OpenAI / Anthropic | Compatível com OpenAI | config.toml | providers | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Plandex | OpenAI-compatible | Compatível com OpenAI | custom models JSON | baseUrl | https://docs.gatellm.io/en/quickstart/openai-compatible |
| SWE-agent | OpenAI-compatible (LiteLLM) | Compatível com OpenAI | env vars | OPENAI_BASE_URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Grok Build | OpenAI-compatible | Compatível com OpenAI | config.toml | custom models | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Mistral Vibe | OpenAI-compatible | Compatível com OpenAI | ~/.vibe/config.toml | providers | https://docs.gatellm.io/en/quickstart/openai-compatible |
| MiMo Code | OpenAI-compatible | Compatível com OpenAI | /connect custom provider | base URL, API key | https://docs.gatellm.io/en/quickstart/openai-compatible |
| ForgeCode | OpenAI / Anthropic | Compatível com OpenAI | setup wizard | base URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Codebuff | OpenAI-compatible | Compatível com OpenAI | settings | base URL, API key | https://docs.gatellm.io/en/quickstart/openai-compatible |

### IDEs e extensões
Cline, Roo Code, Kilo Code, Continue, Zed, Cursor, Windsurf, GitHub Copilot (BYOK)
| Harness | Protocolo | Suporte | Destino da configuração | Nomes de chave / configurações | Documentação |
| --- | --- | --- | --- | --- | --- |
| Cline | OpenAI-compatible | Compatível com OpenAI | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Roo Code | OpenAI-compatible | Compatível com OpenAI | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Kilo Code | OpenAI-compatible | Compatível com OpenAI | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Continue | OpenAI-compatible | Compatível com OpenAI | config.yaml | models[].apiBase | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Zed | OpenAI-compatible | Compatível com OpenAI | settings.json | language_models.openai_compatible.<id>.api_url | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Cursor | OpenAI | Parcial | Settings → Models → Override OpenAI Base URL | Override OpenAI Base URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Windsurf | OpenAI-compatible | Compatível com OpenAI | Settings → Models → BYOK / custom | Base URL, API Key | https://docs.gatellm.io/en/quickstart/openai-compatible |
| GitHub Copilot (BYOK) | OpenAI-compatible | Compatível com OpenAI | Manage Models → OpenAI-compatible | Base URL, API Key | https://docs.gatellm.io/en/quickstart/openai-compatible |

### Plataformas gerenciadas
Warp (somente chaves BYOK), Amazon Q Developer CLI, Devin — endpoint fixo ou não substituível
| Harness | Protocolo | Suporte | Destino da configuração | Nomes de chave / configurações | Documentação |
| --- | --- | --- | --- | --- | --- |
| Warp | OpenAI / Anthropic / Gemini (BYOK) | Parcial | Settings → BYOK | BYOK API keys | https://docs.gatellm.io/en/reference/supported-models-and-sdks |
| Amazon Q Developer CLI | MCP | Sem endpoint personalizado | MCP server | — | https://docs.gatellm.io/en/reference/supported-models-and-sdks |
| Devin | — | Sem endpoint personalizado | — | — | https://docs.gatellm.io/en/reference/supported-models-and-sdks |

## Armadilhas
### O harness fixa o próprio ID de modelo
O Claude Code envia o padrão configurado nele (por exemplo, claude-opus-5 ou claude-sonnet-5) — não o nome do seu gateway. Ou dê ao modelo do gateway exatamente o nome que o harness pede, ou defina a variável de ambiente de modelo dele (por exemplo, ANTHROPIC_MODEL) com o nome do seu gateway. Incompatibilidade → 404 model_not_found na primeira mensagem.

### Harnesses de protocolo Anthropic usam a raiz, não /v1
A base URL de clientes no estilo Anthropic aponta para a raiz do gateway (sem /v1) — o próprio cliente acrescenta /v1/messages. Adicionar /v1 aqui duplica o segmento de caminho.

### Provedores personalizados do Codex exigem wire_api="responses"
O Codex CLI requer wire_api = "responses" para um bloco personalizado [model_providers.*]. O gateway implementa /v1/responses nativamente — aponte o base_url para ele e defina env_key com uma chave de acesso do gateway.

### Harnesses baseados em LiteLLM querem o prefixo openai/ no modelo
Aider, OpenHands e SWE-agent rodam sobre o LiteLLM: defina OPENAI_API_BASE com o gateway e dê ao modelo um prefixo openai/ (por exemplo, openai/gateway-model-name) para que o LiteLLM o roteie como endpoint compatível com OpenAI.

### O padrão é OAuth de assinatura, não a sua chave
Codex, Gemini CLI e Qwen Code usam por padrão o login OAuth / assinatura do fornecedor. Para rotear pelo gateway você precisa mudar para autenticação por chave de API (definir a chave + a base URL explicitamente) — caso contrário o agente contorna o gateway por completo.

### IDEs inferem suporte a ferramentas/visão pelo ID do modelo
Cline / Roo / Kilo e outros decidem a capacidade de chamada de ferramentas e de visão pelo nome do modelo. Um nome personalizado do gateway pode desativar a chamada de funções — se as chamadas de ferramenta falharem, verifique as regras de detecção de capacidade do cliente ou dê ao modelo um nome que corresponda a uma família conhecida.

### Inferência longa adiciona :keep-alive e _gateway_warning
Durante inferências upstream longas, o gateway emite linhas de comentário SSE :keep-alive (inofensivas — ignore linhas que começam com :), e em uma quebra no meio do stream insere um campo _gateway_warning em vez de gerar erro, para que harnesses como o Claude Code não abortem toda a conversa.

### Modo automático do Claude Code: decida quem responde ao veredito de segurança
No modo automático, o Claude Code aguarda um veredito do servidor (um campo safeguards na requisição) antes de uma ação potencialmente perigosa. Quando o upstream é o Anthropic oficial, o veredito é produzido dentro da mesma requisição e o gateway o repassa intacto. Quando o upstream é um terceiro que ignora o campo, o gateway responde em seu lugar — e o padrão de fábrica (allow_all) libera toda ação, o que é mais permissivo do que deixar a chamada seguir. Devolva uma rota ao próprio upstream escrevendo "anthropic_server_safeguards": "upstream" no extra_config desse upstream; a configuração no console é exclusiva de admin.

## FAQ
### Posso usar o Claude Code pelo GateLLM?
Sim — defina ANTHROPIC_BASE_URL com a raiz do gateway (sem /v1) e ANTHROPIC_API_KEY com uma chave de acesso do gateway. Dê ao modelo do gateway exatamente o ID que o Claude Code solicita (por exemplo, claude-opus-5 ou claude-sonnet-5), ou alinhe via ANTHROPIC_MODEL.
### Como aponto o Codex CLI para o gateway?
Em ~/.codex/config.toml, adicione um bloco [model_providers.<id>] com base_url = "https://your-gateway.gatellm.io/v1", env_key apontando para a variável de ambiente da sua chave de acesso e wire_api = "responses" — o gateway implementa /v1/responses nativamente.
### Quais agentes de código não podem usar um endpoint personalizado?
Plataformas hospedadas como Devin e Amazon Q Developer CLI não expõem uma base URL personalizada, então você não consegue roteá-las pelo gateway. O Warp aceita chaves BYOK, mas fixa o endpoint nos provedores oficiais. Todo o resto aqui aceita substituição de base URL.
### As extensões de IDE (Cline / Roo / Kilo) funcionam?
Sim — escolha o provedor "OpenAI Compatible" nas configurações, cole a URL /v1 do gateway + a chave de acesso + o nome do modelo. Fique atento à detecção de capacidade: algumas inferem a chamada de ferramentas pelo ID do modelo.
### Por que o nome do modelo importa tanto?
Os harnesses enviam um ID de modelo fixo — o padrão deles ou o nome que você configurou. O gateway roteia por essa string exata, então uma incompatibilidade é um 404 model_not_found, não um erro de digitação que você possa ignorar.
### E os agentes baseados em LiteLLM (Aider / OpenHands / SWE-agent)?
Eles leem OPENAI_API_BASE e querem um prefixo openai/ no nome do modelo para que o LiteLLM trate o gateway como um endpoint compatível com OpenAI.

## Relacionados
- [Início](https://www.gatellm.io/pt-BR/index.md)
- [Preços](https://www.gatellm.io/pt-BR/pricing.md)
- [Calculadora de custos](https://www.gatellm.io/pt-BR/calculator.md)
- [Sobre](https://www.gatellm.io/pt-BR/about.md)
- [Agendar uma demonstração](https://www.gatellm.io/pt-BR/demo.md)
- [FAQ](https://www.gatellm.io/pt-BR/faq.md)
- [Comparar gateways de IA](https://www.gatellm.io/pt-BR/compare.md)
- [Comparar LiteLLM](https://www.gatellm.io/pt-BR/compare/litellm.md)
- [Comparar OpenRouter](https://www.gatellm.io/pt-BR/compare/openrouter.md)
- [Comparar Alibaba Cloud AI Gateway](https://www.gatellm.io/pt-BR/compare/alibaba-cloud.md)
- [Comparar Azure API Management](https://www.gatellm.io/pt-BR/compare/azure-apim.md)
- [Comparar Apigee](https://www.gatellm.io/pt-BR/compare/apigee.md)
- [Comparar Cloudflare AI Gateway](https://www.gatellm.io/pt-BR/compare/cloudflare.md)
- [Comparar Kong AI Gateway](https://www.gatellm.io/pt-BR/compare/kong.md)
- [Comparar Portkey](https://www.gatellm.io/pt-BR/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/pt-BR/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/pt-BR/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/pt-BR/compare/litellm-vs-portkey.md)
- [Casos de uso](https://www.gatellm.io/pt-BR/use-cases.md)
- [Reduzir custo de LLM](https://www.gatellm.io/pt-BR/use-cases/reduce-cost.md)
- [Alta disponibilidade](https://www.gatellm.io/pt-BR/use-cases/high-availability.md)
- [Isolamento multilocatário](https://www.gatellm.io/pt-BR/use-cases/multi-tenant.md)
- [Conformidade e auditoria](https://www.gatellm.io/pt-BR/use-cases/compliance-audit.md)
- [Solução de problemas por sintoma](https://www.gatellm.io/pt-BR/use-cases/troubleshooting.md)
- [Stack de modelos multivendor](https://www.gatellm.io/pt-BR/use-cases/mixed-model-stack.md)
- [IA auto-hospedada dentro do Office](https://www.gatellm.io/pt-BR/use-cases/self-hosted-office-ai.md)
- [Visibilidade e atribuição do uso de tokens](https://www.gatellm.io/pt-BR/use-cases/token-ops.md)
- [Token FinOps: alocação e controle de custos de IA](https://www.gatellm.io/pt-BR/use-cases/token-finops.md)
- [Governança de ferramentas MCP](https://www.gatellm.io/pt-BR/use-cases/mcp-tool-governance.md)
- [Busca na web para todos os modelos](https://www.gatellm.io/pt-BR/use-cases/web-search-grounding.md)
- [Rotação e standby de múltiplas chaves](https://www.gatellm.io/pt-BR/use-cases/multi-key-pooling.md)
- [Controle de admissão de clientes](https://www.gatellm.io/pt-BR/use-cases/client-admission-control.md)
- [Aplicar política de uso de modelos](https://www.gatellm.io/pt-BR/use-cases/enforce-model-policy.md)
- [Sem escolha de modelo no cliente](https://www.gatellm.io/pt-BR/use-cases/automatic-model-tiering.md)
- [Um protocolo, qualquer modelo](https://www.gatellm.io/pt-BR/use-cases/one-protocol-any-model.md)
- [Suplemento Office / Microsoft 365](https://www.gatellm.io/pt-BR/office-addin.md)
- [Glossário](https://www.gatellm.io/pt-BR/glossary.md)
- [Catálogo de modelos](https://www.gatellm.io/pt-BR/models.md)
- [Integrações de SDK e frameworks](https://www.gatellm.io/pt-BR/integrations.md)
- [Segurança e conformidade](https://www.gatellm.io/pt-BR/security.md)
