O Codex CLI é o agente de código de terminal open source da OpenAI, e ele roda tanto com login do ChatGPT quanto com chave de API. A rota de chave é a que vale entender: cobra por token, sem mensalidade, e é a única que permite apontar a CLI para outro provedor — ou para outra família de modelos. Este guia traz a configuração que funciona, o requisito que derruba a maioria dos gateways, quanto custa uma sessão e como pagar do Brasil por Pix.
O único requisito que importa
O Codex CLI fala a Responses API da OpenAI, e só ela: o bloco model_providers aceita apenas wire_api = "responses". Um gateway que ofereça somente /v1/chat/completions simplesmente não pode ser configurado — é por isso que boa parte dos endpoints “compatíveis com OpenAI” falha aqui. A Kunavo serve POST /v1/responses junto com o endpoint de chat, então o bloco abaixo funciona sem adaptação.
A configuração
# ~/.codex/config.toml
model = "gpt-5-3-codex"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"O env_key é o nome da variável de ambiente, não a chave: o Codex nunca grava a chave no arquivo de configuração.
# O Codex lê a chave da variável indicada em env_key.
export KUNAVO_API_KEY="sk-kn-..." # crie em kunavo.com/app/keys
# Deixe persistente (escolha o arquivo que o seu shell realmente carrega):
echo 'export KUNAVO_API_KEY="sk-kn-..."' >> ~/.zshrc
codex "explique a estrutura deste repositório"Crie a chave no dashboard depois de se cadastrar e recarregar $10 — ela aparece uma única vez.
Pagar do Brasil — Pix, sem cartão internacional
Para o desenvolvedor brasileiro, o obstáculo raramente é o arquivo TOML: é o meio de pagamento. Cobrar a API da OpenAI diretamente exige cartão de crédito internacional habilitado para compras no exterior. Na Kunavo o checkout é processado pelo Stripe e o Pix aparece como forma de pagamento para quem paga do Brasil — valor em reais e compensação imediata. Cartões internacionais (Visa, Mastercard, American Express) e Apple Pay continuam disponíveis para quem preferir.
As tarifas por token são definidas em USD: no Pix o Stripe exibe a conversão em reais na hora do pagamento; no cartão, a conversão segue a taxa do emissor (confira IOF e tarifa de transação internacional no app do banco) — o passo a passo da recarga por Pix está no guia de como pagar a API com Pix. A carteira é pré-paga — recarga mínima de $10, sem assinatura e sem renovação automática, com saldo que nunca expira.
Qual modelo usar
| Necessidade | Modelo | Kunavo input / output (por 1M) |
|---|---|---|
| Padrão especializado em código | gpt-5-3-codex | $0.70 / $5.60 |
| Refatorações e depuração mais difíceis | claude-opus-5 | $2.00 / $10.00 |
| Codificação agentic do dia a dia | claude-sonnet-4-6 | $1.20 / $6.00 |
| Edições rápidas e perguntas | claude-haiku-4-5 | $0.40 / $2.00 |
O gpt-5-3-codex é o GPT ajustado para código e o padrão natural desta CLI, a $0.70 / $5.60 por 1M de tokens contra $1.75 / $14.00 na tabela da OpenAI. As tarifas completas estão na página de preços.
Rodar modelos Claude no Codex CLI
Isso costuma surpreender: o Codex CLI é preso ao protocolo, não ao modelo. Ele fala o formato Responses, e qualquer modelo de chat atrás desse endpoint responde. Aponte para claude-opus-5 e ele roda de ponta a ponta — inclusive as chamadas de ferramenta, então o agente continua lendo arquivos, propondo edições e rodando comandos.
# Mesmo bloco de provider, outro modelo — sem chave nova, sem config nova.
model = "claude-opus-5"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"O gateway traduz a requisição Responses para a API nativa Anthropic Messages e a resposta de volta ao formato Responses. Uma ressalva honesta: o Codex envia itens reasoning opacos que só um modelo nativo de Responses consegue consumir, e eles são descartados no caminho para um upstream que não seja GPT. O modelo perde o rascunho privado do turno anterior; a transcrição visível de que ele parte continua intacta. Na prática isso custa um pouco de continuidade em cadeias longas de raciocínio, e nada nos laços comuns de editar-rodar-corrigir.
Se você quer Claude especificamente, o Claude Code foi feito para isso e passa cache_control sem tradução. Mas se prefere o sandbox do Codex CLI e quer Claude atrás dele, a combinação existe.
Quanto custa uma sessão
CLIs agentic reenviam o system prompt, o histórico da tarefa e o contexto dos arquivos a cada passo, então os tokens se acumulam mais rápido do que a contagem de passos sugere. Um passo típico tem cerca de 25.000 tokens de input e 1.200 de output:
| Unidade | Tokens (input / output) | gpt-5-3-codex | Na tabela OpenAI |
|---|---|---|---|
| Um passo agentic | 25.000 / 1.200 | $0.024 | $0.061 |
| Uma tarefa de 20 passos | ~500 mil / ~24 mil | $0.48 | $1.21 |
| Um dia pesado (5 tarefas) | — | $2.42 | $6.06 |
Ou seja: uma recarga de $10 por Pix cobre cerca de 21 tarefas agentic de 20 passos. E requisições com falha não são cobradas — um 5xx no meio de uma sessão não vira linha na fatura.
Quando algo não funciona
Antes de culpar o Codex, prove que a chave e o endpoint respondem:
# Confirme a chave e o endpoint antes de culpar o Codex.
curl https://api.kunavo.com/v1/responses \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-3-codex",
"input": "Responda OK e nada mais."
}'- 404 — o provedor não implementa
/v1/responses, ou abase_urljá inclui/responses. O Codex acrescenta o caminho sozinho: a base termina em/v1. - 401 — a variável indicada em
env_keyestá vazia no shell que abriu o Codex. Confira comecho $KUNAVO_API_KEYnesse mesmo terminal. - 402 — saldo insuficiente: recarregue em billing (o Pix cai na hora).
- model_not_found — o slug do modelo não existe no catálogo; confira em /models.
Perguntas frequentes
Como usar uma chave de API com o Codex CLI?
Adicione um bloco [model_providers.NOME] em ~/.codex/config.toml com base_url, env_key e wire_api = "responses", e aponte model_provider para esse nome. O Codex lê a chave da variável de ambiente indicada em env_key — ele não guarda a chave no arquivo de configuração. Com a Kunavo, a base URL é https://api.kunavo.com/v1 e a chave é uma sk-kn- criada em kunavo.com/app/keys.
Dá para usar o Codex CLI no Brasil sem cartão internacional?
Sim, pela rota de chave de API. A recarga da carteira Kunavo é processada pelo Stripe e o Pix aparece como forma de pagamento para quem paga do Brasil — valor em reais, compensação imediata, sem depender de cartão de crédito internacional habilitado para o exterior. Cartões internacionais, Apple Pay também funcionam. As tarifas por token são definidas em dólar, a recarga mínima é de $10 e o saldo não expira.
O Codex CLI aceita um endpoint personalizado em vez da OpenAI?
Aceita, mas o provedor precisa servir a Responses API da OpenAI em POST /v1/responses. O bloco model_providers do Codex CLI só admite wire_api = "responses", então um gateway que ofereça apenas /v1/chat/completions não pode ser configurado. A Kunavo serve os dois, então o bloco de configuração acima funciona.
Preciso de assinatura ChatGPT Plus ou Pro para rodar o Codex CLI?
Não. O Codex CLI pode entrar com uma conta ChatGPT ou rodar com chave de API. A rota de chave cobra por token, sem mensalidade — formato mais barato para quem programa em rajadas em vez de todo dia —, e é a única que permite apontar a CLI para outro provedor ou outra família de modelos.
O Codex CLI consegue rodar modelos Claude?
Consegue, através de um gateway que sirva a Responses API. O Codex CLI é preso ao protocolo, não ao modelo: ele fala o formato Responses, e qualquer modelo de chat atrás desse endpoint responde. Apontado para a Kunavo com model = claude-opus-5, o Codex CLI roda de ponta a ponta, incluindo chamadas de ferramenta — o gateway traduz Responses para a API nativa Anthropic Messages e de volta.
Por que o Codex CLI retorna 404 com o meu provider personalizado?
Quase sempre porque o provedor não implementa POST /v1/responses, ou porque a base_url já inclui o caminho /responses. O Codex acrescenta o caminho sozinho, então a base_url deve terminar em /v1. Um 401 no lugar significa que a variável de ambiente indicada em env_key está vazia no shell que abriu o Codex.
Como uso uma chave de API no Codex CLI?
Um bloco [model_providers.kunavo] em ~/.codex/config.toml com base_url = "https://api.kunavo.com/v1", env_key apontando para a variável que guarda a sua chave sk-kn- e wire_api = "responses".
Preciso de cartão internacional?
Não. O Pix aparece no checkout para quem paga do Brasil, com valor em reais e compensação imediata. Recarga mínima de $10, pré-paga, e o saldo não expira.
Preciso de assinatura do ChatGPT?
Não — a rota de chave de API cobra por token, sem mensalidade, e é a única que permite trocar de provedor ou de família de modelos.
E dentro do VS Code?
Kilo Code, Cline e Roo Code usam a mesma chave, com configuração de três campos — veja o guia do Kilo Code com a API do Claude. Os preços por modelo estão no guia de preço da API do Claude.