Codex: model_provider, Base URL e wire_api
Configure um provedor personalizado no Codex com model_provider, Base URL, wire_api, API Key e ID de modelo e corrija erros de provedor, 401 e 404. Mais.
Resposta curta
model_provider informa ao Codex CLI qual provedor deve ser usado. O valor precisa corresponder a um ID definido em [model_providers.<id>].
base_url é o endpoint para o qual as solicitações de modelo são enviadas. Em um provedor compatível com OpenAI, ele geralmente aponta para um endpoint com /v1.
wire_api escolhe o protocolo. Codex atualmente aceita apenas responses e o usa quando a opção é omitida.
Quando isso é importante
- Você está configurando um provedor personalizado compatível com OpenAI
- O Codex não encontra o provedor ou as solicitações falham
- Você não sabe a diferença entre
model_provideremodel - Você está adicionando BetterToken, OpenAI ou outro provedor a um
config.toml - Você precisa separar Base URL, API Key e ID de modelo
Relação entre os campos
| Campo | Finalidade |
|---|---|
model_provider | Seleciona o ID do provedor ativo |
[model_providers.<id>] | Define a configuração detalhada de um provedor |
name | Nome exibido para o provedor |
base_url | Endpoint raiz da API |
wire_api | Protocolo do provider; atualmente apenas responses é aceito. |
model | ID padrão do modelo principal |
review_model | Modelo usado em fluxos de revisão, como /review |
Localize os arquivos e faça backup
Se você definiu um CODEX_HOME personalizado, edite config.toml e auth.json nesse diretório. Caso contrário, use ~/.codex no macOS / Linux ou %USERPROFILE%\.codex no Windows. CLI e App devem usar o mesmo diretório. O WSL tem seu próprio diretório de usuário.
Feche o Codex completamente antes de editar. Faça backup dos dois arquivos em um local privado. Crie os arquivos que faltarem. Substitua as configurações existentes sem duplicar chaves ou tabelas; preserve as demais configurações.
Padrão recomendado
Edite config.toml
Este guia usa config.toml do usuário. Coloque chaves raiz antes de todas as tabelas TOML, não em [projects."<path>"]; essa tabela armazena o trust_level do projeto. O ID selecionado deve corresponder à tabela. Na autenticação por arquivo, remova env_key e experimental_bearer_token do provider selecionado.
model_provider = "bettertoken"model = "gpt-6-astra"cli_auth_credentials_store = "file"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = truesupports_websockets = falseO exemplo usa GPT-6 Astra (gpt-6-astra). Para outro modelo, copie o ID completo da model plaza e substitua model. GPT, Kimi e GLM usam a mesma estrutura de autenticação por arquivos; a configuração automática está disponível para GPT.
Edite auth.json
auth.json fica no mesmo diretório que config.toml. Se auth.json não existir, crie esse arquivo no mesmo diretório. Use o JSON abaixo como conteúdo do arquivo, substitua YOUR_API_KEY pela sua BetterToken API Key e salve o arquivo.
{ "auth_mode": "apikey", "OPENAI_API_KEY": "YOUR_API_KEY"}Parâmetros de configuração
| Parâmetro | Função e localização | Padrões e exemplos |
|---|---|---|
model_provider | Raiz da configuração do usuário; seleciona o ID definido abaixo. | Padrão: openai; aqui bettertoken. |
model | Raiz; Model ID completo da praça de modelos. | Exemplo: gpt-6-astra; substitua conforme necessário. |
cli_auth_credentials_store | Raiz; armazenamento das credenciais de login. | Aqui file: lê auth.json no mesmo diretório. |
name | Tabela do provider; apenas o nome exibido. | BetterToken não é um Model ID. |
base_url | Tabela do provider; Base URL da API do modelo. | Use https://bettertoken.ai/v1; Codex adiciona /responses. |
wire_api | Tabela do provider; protocolo das requisições. | Atualmente só aceita responses, também usado por padrão. |
requires_openai_auth | Tabela do provider; autenticação OpenAI e armazenamento de credenciais. | Padrão: false; aqui true. Não é um seletor para preservar arquivos de login. |
supports_websockets | Tabela do provider; suporte a Responses WebSocket. | Padrão: false; aqui mantém HTTP/SSE. |
auth_mode | Em auth.json; modo de autenticação. | Aqui apikey: substitui a autenticação oficial do ChatGPT. |
OPENAI_API_KEY | Em auth.json; chave da autenticação da API. | Substitua YOUR_API_KEY pela BetterToken API Key. |
A autenticação por arquivo muda para o modo API Key. Para manter a conta oficial, use preservação do login; não misture os modos. A diferença é o objetivo de autenticação, não CLI, App ou Extension.
Ajustes opcionais
Os três ajustes são opcionais, não requisitos de conexão. Adicione-os à tabela existente [model_providers.bettertoken] quando necessário; não crie uma tabela duplicada.
request_max_retries = 4stream_max_retries = 8stream_idle_timeout_ms = 300000| Parâmetro | Função e localização | Padrões e exemplos |
|---|---|---|
request_max_retries | Tabela do provider; máximo de novas tentativas HTTP. | Padrão: 4; ajuste à conexão. |
stream_max_retries | Tabela do provider; reconexões após interrupção do fluxo. | Padrão: 5; 8 é um valor personalizado opcional. |
stream_idle_timeout_ms | Tabela do provider; limite de inatividade do fluxo em milissegundos. | Padrão: 300000; não é o tempo total da tarefa. |
Camadas de configuração e chaves antigas
Não coloque modelo ou raciocínio em [projects."<path>"]. O modelo de um projeto pode usar chaves raiz em .codex/config.toml de um projeto confiável; provider e autenticação ficam na configuração do usuário. Perfis atuais usam NAME.config.toml em CODEX_HOME, selecionado com codex --profile NAME, não tabelas antigas [profiles.NAME] nem o seletor raiz profile.
Reinicie e verifique
Salve os dois arquivos. Inicie uma nova sessão do Codex CLI diretamente pelo terminal:
codexFeche o Codex App completamente, incluindo os processos em segundo plano. Abra-o novamente e crie uma nova tarefa local. Envie um prompt curto em cada cliente que usa. Uma resposta normal confirma a conexão desse cliente.
Solução de problemas
Em caso de 401, 403 ou solicitação de login, confira o diretório ativo, a Key em auth.json, auth_mode = apikey, cli_auth_credentials_store = file e requires_openai_auth = true. Para erros de provedor ou modelo, confira o ID do provedor, https://bettertoken.ai/v1, wire_api = responses e a disponibilidade do modelo. Se as alterações não forem aplicadas, verifique as opções que sobrescrevem a configuração e confirme que CLI e App usam o mesmo CODEX_HOME.
Documentos relacionados
- Como configurar o config.toml do Codex CLI
- Guia de configuração do Codex com BetterToken
- O que são os modos de sandbox e aprovação do Codex CLI?
- API compatível com OpenAI versus API compatível com Anthropic

