
Codex CLI com um provedor personalizado: config.toml, modelos GPT e Claude, extensão para IDE e correções
O Codex lê um único arquivo, ~/.codex/config.toml, compartilhado pela CLI, codex exec e pela extensão para IDE. Um provedor personalizado nesse arquivo direciona o Codex para este gateway, onde a mesma configuração executa modelos GPT e Claude. As versões atuais do Codex usam apenas a Responses API (wire_api = "responses"), portanto, os guias antigos que usam wire_api = "chat" não funcionam mais.
Instalar o Codex
# macOS / Linux
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# or with a package manager
npm install -g @openai/codex
brew install --cask codex
codex --versionpowershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"A extensão do Codex para VS Code, Cursor e Windsurf é instalada pela loja de extensões do editor e usa o mesmo ~/.codex/config.toml que a CLI, portanto, tudo abaixo se aplica a ambos.
Use uma chave do grupo correto
Uma chave do gateway pertence a um grupo, e esse grupo determina quais modelos a chave pode chamar. Para modelos GPT, crie a chave no grupo **Codex** no painel. Para modelos Claude, qualquer chave Claude com pagamento por uso funciona. Uma chave de um grupo Ilimitado exige um plano ativo; sem ele, todas as solicitações falham com No active subscription found for this group.
export AIPRIME_CODEX_KEY=key_from_the_codex_group # GPT models
export AIPRIME_CLAUDE_KEY=key_from_a_claude_group # Claude modelssetx AIPRIME_CODEX_KEY "key_from_the_codex_group"
setx AIPRIME_CLAUDE_KEY "key_from_a_claude_group"
# open a new terminal afterwardsconfig.toml para modelos GPT
model_provider = "aiprime"
model = "gpt-6-astra"
model_reasoning_effort = "high"
[model_providers.aiprime]
name = "AI Prime Tech"
base_url = "https://aiprimetech.io/v1"
env_key = "AIPRIME_CODEX_KEY"
wire_api = "responses"
supports_websockets = false| Definir | Por quê |
|---|---|
[model_providers.aiprime] | Qualquer ID, exceto o reservado openai, ollama e lmstudio |
base_url = "https://aiprimetech.io/v1" | O Codex acrescenta /responses a ele |
env_key | O **nome** da variável de ambiente que contém a chave, e não a própria chave |
wire_api = "responses" | O único valor aceito pelo Codex atualmente |
supports_websockets = false | Mantém o Codex usando streaming HTTP simples, que funciona por meio de qualquer proxy ou VPN |
requires_openai_auth = true ou experimental_bearer_token a este provedor. Com requires_openai_auth = true o Codex ignora env_key e envia suas credenciais de login do ChatGPT ou da OpenAI, que o gateway rejeita.Execute o Codex com modelos Claude
O gateway aceita solicitações da Responses API para modelos Claude e as traduz, permitindo que o Codex também use o Claude. Adicione um segundo provedor que use sua chave Claude e, depois, um perfil para alternar para ele.
[model_providers.aiprime_claude]
name = "AI Prime Tech (Claude)"
base_url = "https://aiprimetech.io/v1"
env_key = "AIPRIME_CLAUDE_KEY"
wire_api = "responses"
supports_websockets = falsemodel_provider = "aiprime_claude"
model = "claude-sonnet-5"
model_reasoning_effort = "high"codex --profile claude
codex exec --profile claude "review the last commit for bugs"Desde o Codex 0.134.0, cada perfil tem seu próprio arquivo, ~/.codex/<name>.config.toml, com suas chaves no nível superior; [profiles.<name>] as tabelas dentro de config.toml não são mais lidas. Perfis e provedores só podem ser definidos na sua configuração de usuário: o arquivo do projeto .codex/config.toml ignora model_provider e model_providers.
Modelos e esforço de raciocínio
| ID do modelo | Provedor | Use para |
|---|---|---|
gpt-6-astra | Chave do grupo Codex | O modelo GPT mais poderoso do gateway; tarefas longas de agentes |
gpt-6-sol | Chave do grupo Codex | GPT mais rápido e econômico para programação de rotina |
gpt-5.6-terra | Chave do grupo Codex | Tarefas leves e edições rápidas |
claude-sonnet-5 | Chave Claude | Claude padrão para tarefas de programação |
claude-opus-5-5 | Chave Claude | Raciocínio mais complexo e refatorações grandes |
claude-fable-5-1 | Chave Claude | O mais capaz e mais caro |
model_reasoning_effort aceita low, medium, high, xhigh ou max, dependendo do modelo. Não defina none: esses modelos rejeitam esse valor com 'none' is not supported. review_model define um modelo diferente para /review se você quiser. O painel mostra todos os modelos que o grupo da sua chave pode chamar.
Extensão para IDE e codex exec
A extensão para IDE lê o mesmo config.toml, mas env_key é resolvido a partir do ambiente do próprio editor. Um editor iniciado pelo dock ou pelo menu Iniciar não vê as variáveis exportadas em .bashrc, e o Codex então falha com Invalid API key enquanto a CLI funciona. Defina a variável para todo o sistema (no Windows, setx faz isso) ou inicie o editor a partir de um terminal, por exemplo, code ..
codex exec executa uma tarefa sem a interface interativa, o que é adequado para scripts e CI. Usa a mesma configuração e os mesmos perfis:
codex exec "write unit tests for utils.py"
codex exec --profile claude "summarise the changes on this branch"
codex login status # which authentication method is activeNovas tentativas e tempos limite
Cada provedor tem suas próprias configurações de novas tentativas e streaming. Os valores padrão são 4 novas tentativas de solicitação, 5 reconexões de streaming e um tempo limite de inatividade de 5 minutos por stream. Etapas longas de raciocínio podem ficar sem transmitir dados por algum tempo, então aumentar o tempo limite de inatividade ajuda em níveis altos de esforço.
[model_providers.aiprime]
# ...settings from above...
request_max_retries = 6
stream_max_retries = 8
stream_idle_timeout_ms = 600000Solução de problemas: erros encontrados por usuários do Codex
Os erros abaixo são os que os clientes Codex realmente produzem neste gateway, começando pelos mais comuns.
| O que você vê | Causa | Correção |
|---|---|---|
403 No active subscription found for this group | A chave pertence a um grupo Ilimitado sem plano ativo | Use uma chave de um grupo com pagamento por uso (Codex para GPT) ou compre um plano |
401 Invalid API key | A variável está vazia no processo que executa o Codex (geralmente a IDE), ou requires_openai_auth = true fez o Codex enviar outras credenciais de login | echo $AIPRIME_CODEX_KEY; remova requires_openai_auth; reinicie o editor |
404 Model "..." is not supported by any configured account in this group | O modelo não pertence ao grupo da chave, por exemplo, um modelo Claude com uma chave GPT | Alterne o provedor ou o perfil para que a chave corresponda ao modelo |
426 WebSocket upgrade required | O transporte WebSocket está ativado, mas a conexão não foi atualizada | supports_websockets = false, e remova responses_websockets_v2 de [features] |
403 Your API key has expired | A chave foi criada com uma data de expiração | Crie uma nova chave no painel |
'none' is not supported | Esforço de raciocínio definido como none | Use low ou superior |
404 page not found | base_url contém /v1 duas vezes | Use exatamente https://aiprimetech.io/v1 |
Erro de configuração referente a wire_api após uma atualização | A wire_api = "chat" linha de um guia antigo | Defina wire_api = "responses" |
Your balance is used up | O saldo está zerado | Adicionar créditos |
Concurrency limit exceeded for user | Vários agentes ou janelas do Codex em execução ao mesmo tempo | Execute menos em paralelo ou peça ao suporte um limite maior de simultaneidade |
Está comparando o Codex com o Claude Code antes de escolher um deles? Veja Claude Code vs Codex.
Perguntas frequentes
Onde fica o arquivo de configuração do Codex?
A CLI do Codex pode usar modelos Claude?
wire_api = "chat" ainda funciona no Codex?
Por que a extensão do Codex para VS Code informa que a chave de API é inválida quando a CLI funciona?
O que significa 'Nenhuma assinatura ativa encontrada para este grupo' no Codex?
Obtenha uma chave de API — sem precisar de conta na Anthropic nem de lista de espera.
Obtenha sua chave de APIAI Prime Tech é um gateway de API independente. Não tem afiliação com a Anthropic, não é endossado por ela e não é seu revendedor. Claude e os nomes dos modelos relacionados são marcas comerciais de seus respectivos proprietários.