Codex: manter login oficial e histórico com API de terceiros
Mantenha o login oficial do Codex com APIs de terceiros via config.toml ou CC Switch. Parâmetros, ajustes opcionais, histórico e soluções para erros comuns.
Use BetterToken API Key nas requisições ao modelo e mantenha o login oficial do Codex. Configuração manual e CC Switch separam as credenciais oficiais das credenciais da API de terceiros.
Antes de começar
Faça login oficial no Codex App, Codex CLI ou Extension. Prepare BetterToken API Key e o Model ID completo da praça de modelos. Os clientes compartilham configuração ao usar o mesmo CODEX_HOME.
BetterToken API Key · praça de modelos
Métodos de configuração
Configuração manual
Mantenha as credenciais oficiais
Encerre Codex completamente e guarde uma cópia privada. Credenciais oficiais podem estar em auth.json ou no armazenamento do sistema. Mantenha esse modo, não substitua por JSON API Key e não crie um arquivo de login fictício.
Edite config.toml
Abra config.toml do usuário: ~/.codex/config.toml no macOS / Linux ou %USERPROFILE%\.codex\config.toml no Windows; use seu CODEX_HOME personalizado quando definido. Mescle as configurações com chaves raiz antes de todas as tabelas TOML, sem duplicar tabelas. Troque YOUR_API_KEY localmente pela BetterToken API Key.
model_provider = "bettertoken"model = "gpt-6-astra"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = trueexperimental_bearer_token = "YOUR_API_KEY"supports_websockets = falseMantenha as credenciais do login oficial; não substitua por JSON de API Key. requires_openai_auth = true usa a autenticação oficial; experimental_bearer_token do provider atual fornece a chave de terceiros para os modelos. Com o primeiro ativo, Codex ignora env_key, portanto não o use como substituto direto do Bearer Key. Não compartilhe arquivos com chaves.
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. |
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. |
experimental_bearer_token | Tabela do provider; Bearer Key para requisições de terceiros. | Informe BetterToken API Key. Não reescreve o login oficial. Ainda aceito, mas armazenado em texto simples. |
supports_websockets | Tabela do provider; suporte a Responses WebSocket. | Padrão: false; aqui mantém HTTP/SSE. |
Ajustes opcionais de modelo e conexão
Os dois ajustes ficam na raiz de config.toml. São opcionais, não necessários para preservar o login.
review_model = "gpt-6-astra"model_reasoning_effort = "high"| Parâmetro | Função e localização | Padrões e exemplos |
|---|---|---|
review_model | Raiz; modelo usado por /review. | Opcional; usa o modelo da sessão atual por padrão. |
model_reasoning_effort | Raiz; esforço de raciocínio do modelo. | Exemplo: high; níveis e padrões dependem do modelo. |
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. |
Configuração com CC Switch
-
No CC Switch atual, escolha OpenAI Official, inicie Codex e faça o login oficial.
-
Abra Configurações → Configuração de aplicativos → Codex e ative Preservar login oficial ao trocar sem assumir o controle. Controla trocas diretas; durante controle de roteamento o login é preservado.
-
Adicione ou ative BetterToken na página Codex. Use Base URL
https://bettertoken.ai/v1, OpenAI Responses API, BetterToken API Key e Model ID. BetterToken suporta Responses diretamente, sem conversão de protocolo ou controle de roteamento. -
Salve e ative. A chave de terceiros vai para o provider em
config.toml, não para oauth.jsonoficial.
Histórico unificado (opcional)
Histórico unificado de sessões Codex afeta apenas CLI resume. Codex desktop atual já mostra todas as sessões; não exige o seletor. Se optar por migrar o histórico, CC Switch faz backup antes. Continuar com outro provider pode falhar por encrypted_content incompatível; comece outra sessão após trocar.
Reinicie e verifique
-
Encerre e reinicie totalmente o cliente Codex usado; crie uma sessão nova.
-
Confira o login oficial e os plugins ou Remote Control em um cliente compatível.
-
Envie uma tarefa curta, confira Model ID e o registro de uso BetterToken. A conta exibida sozinha não identifica quem cobra o modelo.
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.
Solução de problemas
| Sintoma | Ação |
|---|---|
401, 403 ou pedido de login | Confira CODEX_HOME, login oficial e chave do provider; não substitua credenciais por JSON API Key. |
| Configuração ignorada ou modelo inalterado | Chaves do modelo na raiz, antes das tabelas TOML, não em [projects."<path>"]. Confira substituições de CLI, perfil e projeto. |
disable_response_storage ou windows_wsl_setup_acknowledged | Remova as chaves antigas; não use na configuração atual. |
features.code_mode_tool_description_first | Se a origem for session-flags, confira e atualize o cliente que fornece os argumentos de início. Não adicione o ajuste à configuração do usuário. |
features.guardianv2.thread_context | Remova essa chave, inclusive nos perfis; mantenha o restante do Guardian. Contexto da thread está sempre ativo. |
| Histórico visível, mas falha ao continuar com outro provider | Crie uma sessão nova ou use o provider original. |

