config.toml do Codex para um provedor de API personalizado: só Responses desde 2026
Wokey Team · 2026-09-24
Resposta curta: para apontar o Codex para uma API de terceiros, defina um provedor personalizado em ~/.codex/config.toml, defina base_url como o gateway e coloque sua chave na variável de ambiente indicada por env_key. O protocolo de comunicação precisa ser Responses. O Codex removeu o suporte a Chat Completions em fevereiro de 2026, e wire_api = "chat" agora falha na inicialização, então a maioria dos tutoriais que ainda mostram wire_api = "chat" não funciona mais.
A configuração abaixo funciona nas versões atuais do Codex CLI. Toda string de erro deste guia foi citada do código-fonte do Codex ou de uma resposta real da API da Wokey.
Configuração completa (copie e cole)
# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "wokey"
[model_providers.wokey]
name = "Wokey"
base_url = "https://api.wokey.ai"
env_key = "WOKEY_API_KEY"
wire_api = "responses"
export WOKEY_API_KEY="your Wokey API key"
codex
O que cada campo faz:
| Campo | Finalidade | Erro comum |
|---|---|---|
model_provider |
Chave de nível superior que indica qual tabela [model_providers.<id>] usar |
Se ficar de fora, o Codex continua no provedor openai embutido e pede login no ChatGPT |
base_url |
Endereço do gateway; o Codex acrescenta /responses |
Não adicione /responses por conta própria, ou as requisições vão para /responses/responses |
env_key |
O nome da variável de ambiente que guarda a chave; o Codex a envia como Authorization: Bearer |
É o nome da variável, não a chave em si |
wire_api |
Protocolo de comunicação; "responses" é o único valor válido e o padrão |
"chat" falha na inicialização |
Na Wokey, base_url pode ser https://api.wokey.ai ou https://api.wokey.ai/v1; o gateway atende tanto /responses quanto /v1/responses. Para outros gateways, siga a documentação deles: muitos registram apenas os caminhos /v1.
O nome da variável fica a seu critério. OPENAI_API_KEY funciona, mas se você também usa a API oficial da OpenAI, uma WOKEY_API_KEY separada evita que as duas chaves se sobrescrevam.
Por que os tutoriais antigos quebram
Linha do tempo:
- 2025-12-09: o time do Codex publicou a discussão no GitHub #7782, "Deprecating chat/completions support in Codex". Ela anunciava a remoção para o início de fevereiro de 2026, pedia que usuários com
wire_api = "chat"ou semwire_apimigrassem e pedia que os gateways confirmassem o suporte a Responses. - 2026-02-03: o PR #10157, "chore: nuke chat/completions API" foi mesclado e o código de Chat Completions foi apagado.
Desde então, o WireApi do Codex tem um único valor, Responses. Com wire_api = "chat" ainda na configuração, o Codex falha na inicialização com:
`wire_api = "chat"` is no longer supported.
How to fix: set `wire_api = "responses"` in your provider config.
More info: https://github.com/openai/codex/discussions/7782
Troque para wire_api = "responses" ou apague a linha. Isso também significa que um gateway que só fala Chat Completions não consegue mais atender o Codex: verifique se há um endpoint /v1/responses antes de escolher um.
Outras configurações desatualizadas ou ignoradas
api_key dentro da tabela do provedor. O Codex rejeita campos desconhecidos na configuração do provedor, então uma linha api_key = "sk-..." faz a configuração falhar no parsing. Passe a chave pela variável indicada por env_key. Se você realmente precisar colocar um token no arquivo, o campo é experimental_bearer_token, mas isso não é recomendado.
[profiles.xxx] e um profile = "xxx" de nível superior. Desde o Codex 0.134.0, --profile xxx sobrepõe ~/.codex/xxx.config.toml. As tabelas [profiles.xxx] no config.toml não são mais lidas, e profile = de nível superior não é mais suportado. Para alternar entre sua conta oficial e um gateway, coloque o provedor da Wokey em ~/.codex/wokey.config.toml e inicie com codex --profile wokey.
Provedores no .codex/config.toml de um projeto. A configuração de nível de projeto ignora model_provider e model_providers. Provedores só podem ser definidos no ~/.codex/ da sua pasta pessoal.
ID de provedor openai, ollama ou lmstudio. Esses IDs são reservados para os provedores embutidos e não servem para definir um personalizado. Use outro nome, como wokey.
Qual modelo usar
O Codex só envia requisições Responses, então prefira modelos que atendem /v1/responses nativamente. Na Wokey, isso inclui hoje a família GPT (gpt-6-sol, gpt-6-luna, gpt-6-astra, gpt-5.6-sol), a família Grok (grok-4.7, grok-4.6) e deepseek-v4.1-flash. A lista "Supported endpoints" em cada página de modelo é a referência, e a oferta muda com o tempo.
Modelos sem Responses nativo, como os que listam só Chat Completions, ainda funcionam no Codex pela Wokey. O gateway converte a requisição para o protocolo do upstream e converte o resultado de volta para Responses. Mas a conversão tem perdas:
- Algumas ferramentas específicas do Codex são descartadas na conversão para Chat Completions, como o
apply_patchem formato livre,local_shelle oweb_searchembutido. - As chamadas de ferramentas só aparecem quando a resposta inteira termina.
Para o seu modelo principal de programação, escolha um com Responses nativo.
Solução de problemas
Missing environment variable: `WOKEY_API_KEY`.
O Codex não encontrou a variável indicada por env_key. Confira a grafia e garanta que você a exportou no mesmo terminal que inicia o codex. Se você a adicionou ao ~/.zshrc ou ~/.bashrc, abra um terminal novo.
HTTP 401 com code igual a invalid_api_key
A Wokey retorna isso para uma chave ausente ou errada, e o message diz qual é o caso: nenhuma chave enviada, chave inexistente, ou uma chave que foi excluída, pausada ou expirou. Confira se a chave foi copiada inteira, se não foi excluída nem pausada no console e se não há aspas ou espaços sobrando na variável.
HTTP 404 com Route POST:/responses/responses not found
base_url termina em /responses. O Codex acrescenta o caminho sozinho, então base_url deve parar no domínio (ou em /v1).
O Codex pede login no ChatGPT
Não há model_provider = "wokey" no nível superior, ou o provedor está em um .codex/config.toml de projeto, onde é ignorado. O Codex voltou para o provedor openai embutido.
wire_api = "chat" is no longer supported
Veja acima: troque para "responses" ou apague a linha.
HTTP 402 O saldo da sua conta acabou.
Para descartar o Codex, teste primeiro a chave e o endpoint com curl:
curl https://api.wokey.ai/v1/responses \
-H "Authorization: Bearer $WOKEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-sol","input":"ping"}'
Se o curl funciona e o Codex não, o problema está no config.toml. Se o curl também falha, o problema é a chave ou a rede.
Perguntas frequentes
O Codex ainda aceita wire_api = "chat"?
Não. O Codex removeu o suporte a Chat Completions no PR #10157, mesclado em 2026-02-03. wire_api agora aceita apenas responses, e chat falha na inicialização. Troque para wire_api = "responses" ou apague a linha; esse é o padrão.
O base_url do Codex deve incluir /v1?
O Codex acrescenta /responses ao base_url. Com a Wokey, tanto https://api.wokey.ai quanto https://api.wokey.ai/v1 funcionam. Não adicione /responses por conta própria, ou você recebe um 404 Route POST:/responses/responses not found.
Posso colocar a chave de API direto no config.toml?
Um campo api_key na tabela do provedor faz a configuração falhar no parsing, porque o Codex rejeita campos de provedor desconhecidos. Indique uma variável de ambiente com env_key e exporte essa variável.
O Codex pode usar o Claude ou outros modelos que não sejam GPT?
Na Wokey, sim: o gateway converte a requisição Responses para o protocolo do upstream. A conversão descarta algumas ferramentas específicas do Codex, então para programar escolha um modelo com /v1/responses nativo, como gpt-6-sol, grok-4.7 ou deepseek-v4.1-flash.
Por que minha configuração [profiles] parou de funcionar?
Desde o Codex 0.134.0, --profile name sobrepõe ~/.codex/name.config.toml, e as tabelas [profiles.name] no config.toml não são mais lidas. Mova essa configuração para um arquivo próprio.