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:

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_patch em formato livre, local_shell e o web_search embutido.
  • 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.