Verificado em 2026-11-12

Codex CLI no saldo pré-pago, com um bloco de provider

O Codex CLI é conectado com um bloco de model provider em ~/.codex/config.toml: base_url recebe https://api.relayswitch.io/v1 e a chave fica em uma variável de ambiente. O uso do Codex não muda, e cada turno é debitado por token do saldo pré-pago pela rota Responses.

01O que é o Codex, e o que muda aqui

O Codex CLI é o agente de programação de linha de comando da OpenAI. A configuração dele tem a opção model_provider, cujo valor padrão é openai, e assim as requisições vão para a interface da própria OpenAI. Essa opção pode ser trocada: defina o seu provider em config.toml, com o endereço do endpoint e o nome da variável de ambiente que guarda a chave, e aponte model_provider para ele. Os comandos e o uso do Codex continuam iguais; só muda quem cobra.

O Codex fala um único protocolo, a Responses API da OpenAI: a referência de configuração dele diz que wire_api só aceita o valor responses. Por isso, a primeira coisa a confirmar em um gateway é se ele oferece /v1/responses, e não apenas /v1/chat/completions. Aqui as duas rotas existem, e o Codex usa a primeira.

02config.toml: um bloco de provider

O bloco abaixo tem quatro linhas, e a API key não é escrita no arquivo. O que cada opção significa:

  • model_provider escolhe o bloco pelo nome da tabela. Esse nome é você quem define, mas openai, ollama, lmstudio, amazon-bedrock, amazon-bedrock-runtime e gcp são ids embutidos do Codex e não podem ser sobrescritos.
  • base_url recebe https://api.relayswitch.io/v1, com /v1; o Codex acrescenta /responses ao final.
  • env_key é o nome da variável de ambiente que guarda a chave, não a chave em si. Como a chave fica na variável de ambiente, o arquivo de configuração pode ser commitado ou sincronizado com segurança.
  • wire_api tem um único valor válido, responses, que também é o padrão, então essa linha pode ser removida.
  • requires_openai_auth tem false como padrão e não precisa ser escrita: um provider personalizado usa a chave de env_key, e não o login da conta OpenAI.
toml
1# ~/.codex/config.toml
2model = "gpt-6.1-sol"
3model_provider = "relayswitch"
4
5[model_providers.relayswitch]
6name = "RelaySwitch"
7base_url = "https://api.relayswitch.io/v1"
8env_key = "RELAYSWITCH_API_KEY"
9wire_api = "responses"

03Guarde a chave em uma variável de ambiente e execute codex

Escreva o bloco em ~/.codex/config.toml. Esse diretório é definido pela variável de ambiente CODEX_HOME e o padrão é ~/.codex; o provider precisa estar nesse arquivo de nível de usuário. Depois, exporte a chave no terminal em que o Codex vai rodar e inicie. Acrescente a linha de export ao arquivo de configuração do shell para que novos terminais também a carreguem.

bash
1export RELAYSWITCH_API_KEY="sk-relay-..."
2codex

04Teste a rota Responses com curl

Antes de executar o Codex, envie uma requisição Responses pequena para confirmar que a chave e o endereço estão corretos. A opção -i mostra a linha de status e os headers da resposta, incluindo o id da requisição.

Se a resposta for 200, execute codex e envie o primeiro comando. A requisição aparece na página Usage do console em poucos segundos, com tokens e custo. Para trocar de modelo temporariamente, use codex --model seguido do id.

bash
1curl -i https://api.relayswitch.io/v1/responses \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "content-type: application/json" \
4 -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'

05Preços dos modelos GPT e o custo de uma tarefa

Esta tabela traz os modelos GPT do catálogo em USD por milhão de tokens, com preços separados de entrada, entrada em cache e saída. O Codex foi projetado para modelos GPT e para a rota Responses, então confirme que o id escrito no config.toml responde ao teste com curl acima.

O Codex reenvia a conversa e a saída das ferramentas a cada turno. Esses tokens são cobrados pelo preço de entrada em cache quando caem no cache, e a resposta informa quantos tokens vieram do cache; cair ou não depende do modelo e da própria requisição. Isso torna a economia concreta: use um modelo mais barato para as mudanças do dia a dia e passe para um mais caro só em reviews e refactors difíceis, comece uma sessão nova ao terminar uma tarefa para o contexto não crescer sem parar, e crie uma chave só para o Codex com orçamento em dólares e limite de gasto diário. Ao atingir o limite, o gateway responde 402 e só essa chave deixa de funcionar; o restante do saldo da conta fica intacto.

ModeloDesenvolvedorEntradaSaídaContexto
GPT-6.1 Solgpt-6.1-solOpenAI$0.582$2.911,050,000
GPT-6 Lunagpt-6-lunaOpenAI$0.0625$0.201,050,000
GPT-6 Solgpt-6-solOpenAI$0.60$3.001,050,000
GPT-6 Astragpt-6-astraOpenAI$3.00$15.001,050,000
GPT-5.6 Lunagpt-5.6-lunaOpenAI$0.12$0.721,050,000
GPT-5.6 Solgpt-5.6-solOpenAI$1.20$3.001,050,000
GPT-5.6 Terragpt-5.6-terraOpenAI$1.20$3.601,050,000
GPT-5.5gpt-5.5OpenAI$1.80$9.001,050,000
GPT-5.4 Minigpt-5.4-miniOpenAI$0.75$4.50400,000
GPT-5.4gpt-5.4OpenAI$1.50$9.001,050,000
GPT-5.3-Codexgpt-5.3-codexOpenAI$1.75$14.00400,000
GPT-4o minigpt-4o-miniOpenAI$0.15$0.60128,000
GPT-4ogpt-4oOpenAI$2.50$10.00128,000
GPT-4.1 Nanogpt-4.1-nanoOpenAI$0.10$0.401,048,576
GPT 5.4 Nanogpt-5.4-nanoOpenAI$0.40$2.50400,000
GPT 5.6gpt-5.6OpenAI$0.9412$4.70591,050,000
GPT 6.1 Terragpt-6.1-terraOpenAI$0.2941$1.47061,000,000
gpt-oss-120bgpt-oss-120bOpenAI$0.20$1.80
gpt-oss-20bgpt-oss-20bOpenAI$0.16$0.72

USD por milhão de tokens

06Profile por modelo, e o menu /model

Um profile é um arquivo chamado ~/.codex/<name>.config.toml que contém só as linhas diferentes de config.toml e é aplicado por cima dele quando o Codex é executado com codex --profile <name>. Desde o Codex 0.134.0, as tabelas [profiles.<name>] dentro de config.toml não são mais lidas, e o seletor profile = no nível superior foi removido; tutoriais escritos antes disso ainda usam a forma antiga, que não funciona se for copiada. O valor de model_reasoning_effort segue os níveis suportados pelo modelo escolhido; o Codex o envia em toda requisição, e o gateway o repassa ao modelo sem alteração.

Com um provider personalizado, o menu /model do Codex continua mostrando os modelos embutidos da OpenAI, e não os do seu provider. Escolher um deles reescreve o arquivo de profile ativo: o modelo muda, o provider não. Se o id escrito existir no catálogo, o Codex roda pelo preço desse modelo; se não existir, a resposta é 404. Para trocar de modelo, use --profile ou --model.

07Erros mais comuns

Os status 401 a 404 são devolvidos antes de a requisição chegar ao modelo, e 429, 502 e 503 não trazem resposta; nenhum deles é cobrado. A tabela completa por status está na página OpenAI API. Para programar com o Claude no terminal, use o Claude Code; os dois rodam com a mesma chave e o mesmo saldo, e a criação da chave está na página Claude API key.

401A chave está errada ou foi revogada, ou RELAYSWITCH_API_KEY está vazia no terminal em que o Codex roda. Execute o export de novo e reinicie.
402Saldo insuficiente, ou o orçamento da chave acabou. Tudo volta ao normal assim que você recarrega ou aumenta o orçamento.
404O id do modelo não existe no catálogo, em geral porque o menu /model reescreveu o profile. Restaure a linha model.
429O rate limit da chave foi atingido. Espere o tempo indicado no header retry-after ou aumente o limite de requisições por minuto dessa chave no console.
O bloco de provider não tem efeitoO nome da tabela usa um id embutido, ou model_provider não contém o nome dessa tabela.
O profile não tem efeitoO conteúdo ainda está em uma tabela [profiles.<name>] no config.toml; mova as linhas para um arquivo próprio.

Perguntas frequentes

O que é o Codex CLI?
O Codex CLI é o agente de programação de linha de comando da OpenAI. A opção model_provider da configuração define para onde as requisições vão; o padrão é openai, e o valor pode apontar para um provider que você mesmo define no config.toml.
Como configurar o Codex com uma API key própria?
Acrescente em ~/.codex/config.toml um bloco model_providers.relayswitch com name, base_url (https://api.relayswitch.io/v1) e env_key (RELAYSWITCH_API_KEY). Depois, no nível superior, preencha model_provider com relayswitch e model com um dos ids de GPT do catálogo. Guarde a chave em uma variável de ambiente com export e execute codex.
Preciso de conta no ChatGPT ou de API key da OpenAI?
Segundo a referência de configuração do Codex, requires_openai_auth tem false como padrão em providers personalizados, e as requisições são autenticadas com a chave da variável de ambiente indicada por env_key. Sua conta e seu saldo ficam na RelaySwitch, e a chave começa com sk-relay-.
base_url leva /v1 ou não, e o que vai em wire_api?
base_url recebe https://api.relayswitch.io/v1, com /v1; o Codex acrescenta /responses ao final. wire_api tem um único valor válido, responses, que também é o padrão, então a linha pode ser removida. O valor chat dos tutoriais antigos não funciona mais.
Como saber que o modelo não foi trocado sem aviso?
Há duas coisas que você mesmo pode conferir. Cada modelo recebe o mesmo prompt de teste uma vez por dia e a resposta é comparada com os resultados anteriores; o resultado fica aberto em https://api.relayswitch.io/v1/proof. Cada requisição também tem um recibo assinado que registra o id do modelo, os tokens cobrados e o custo. O valor de model_reasoning_effort é enviado pelo Codex em toda requisição e repassado pelo gateway ao modelo sem alteração.
Os tokens do Codex parecem caros; como economizar?
O Codex reenvia a conversa e a saída das ferramentas a cada turno, então o custo está sobretudo na entrada e na entrada em cache. Três medidas: use um modelo mais barato para as mudanças do dia a dia e o mais caro só para problemas difíceis, comece uma sessão nova ao terminar a tarefa, e dê à chave do Codex um orçamento em dólares e um limite diário para que ela pare quando o limite for atingido.

Um bloco de provider, uma variável de ambiente

base_url https://api.relayswitch.io/v1, modelos GPT cobrados por token pelo preço do catálogo, com verificação diária aberta ao público.