Usar o DeepSeek dentro do Codex deixou de exigir proxy: como o Codex trabalha com a Responses API e o DeepSeek responde a esse protocolo nativamente, basta configurar os arquivos certos. Há, porém, duas ressalvas importantes: apenas um dos dois modelos DeepSeek funciona hoje, e ele não aceita imagens.
É possível usar DeepSeek no Codex?
Sim. O Codex conversa com os modelos pela Responses API, protocolo que a API do DeepSeek oferece de forma nativa. Na prática, o DeepSeek entra no Codex como um provedor de modelos definido em um arquivo de configuração. A própria DeepSeek publica essa integração na seção Agent Integrations → Codex da documentação da API.
Isso simplificou bastante a instalação. O Codex abandonou o caminho antigo wire_api = "chat" em favor da Responses API, e durante algum tempo isso deixou o DeepSeek acessível apenas por uma camada de tradução: LiteLLM, um roteador com implementação própria da Responses API ou uma ponte feita manualmente. Essas alternativas continuam funcionando, mas não são mais requisito para começar. Trata-se de configurar um provedor, algo diferente de adicionar ferramentas MCP relacionadas ao DeepSeek no Codex.
Uma única configuração vale para todas as interfaces do Codex. O Codex CLI, o app desktop do ChatGPT e a extensão Codex para VS Code leem o mesmo diretório ~/.codex; portanto, não é necessário repetir a configuração em cada cliente.
Qual modelo DeepSeek funciona no Codex?
Apenas o deepseek-v4-flash. A tabela de preços da DeepSeek indica suporte à Responses API com ✓ para deepseek-v4-flash e ✗ para deepseek-v4-pro, além de uma nota prometendo suporte ao Pro no início de agosto de 2026. Em 3 de agosto de 2026, essa nota continuava publicada e o Pro ainda aparecia com ✗.
Os dois modelos constam no catálogo models.json criado pela configuração. Assim, nada impede que você selecione o Pro no arquivo, mas a requisição falha no provedor quando é enviada. O preset DeepSeek do CC Switch traz o mesmo alerta no código-fonte do preset: trocar para o Pro antes de a DeepSeek liberar a integração resulta em erro.
Quem precisa hoje do modelo mais potente pode usar seu endpoint no formato Anthropic. É por isso que o Pro aparece em configurações do Claude Code, mas não no Codex. Como os dois modelos têm diferenças relevantes de preço e concorrência, vale escolher conscientemente; veja o comparativo deepseek-v4-flash vs deepseek-v4-pro.
Caminho 1: usar o script oficial
A DeepSeek disponibiliza um script que grava toda a configuração. É a opção mais rápida para quem ainda não administra vários provedores. Antes, é preciso ter o Codex CLI ou o app desktop do ChatGPT instalado e aberto ao menos uma vez, para criar o diretório ~/.codex. O cliente Codex também precisa estar na versão 0.144.0 ou superior, mínimo declarado pelo catálogo de modelos.
# macOS / Linux
bash <(curl -fsSL https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.sh)
# Windows, no PowerShell
irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
O script exibe um menu: 1 seleciona deepseek-v4-flash, 2 seleciona deepseek-v4-pro e 3 restaura a configuração anterior à instalação. Escolha 1: a opção 2 grava uma configuração válida para um modelo que ainda não consegue atender requisições do Codex. Na primeira execução, ele pede sua chave de API, criada em platform.deepseek.com.
O que o script altera em uma configuração existente
Executei o script oficial em 3 de agosto de 2026 em um CODEX_HOME descartável, previamente preenchido com uma configuração propositalmente conflitante: um profile, um model_verbosity antigo, um model_reasoning_summary, além de um servidor MCP e uma entrada de projeto confiável. Para reproduzir, use CODEX_HOME=/tmp/probe sh codex-deepseek-setup-en.sh e escolha 1. O script informou quatro mudanças e explicou cada uma:
• Reescreveu model: "gpt-5.6-sol" → "deepseek-v4-flash"
• Removeu profile = "myprofile" ← um profile mascara model / model_provider / model_catalog_json
• Removeu model_verbosity = "high" ← um valor antigo pode estar fora do que o modelo suporta
• Removeu model_reasoning_summary = "detailed" ← models.json declara default_reasoning_summary=none
O bloco [mcp_servers.playwright], o nível de confiança em [projects."..."] e approval_policy permaneceram intactos. Antes de gravar qualquer alteração, o arquivo original foi copiado para ~/.codex/backup-deepseek/. O script também validou os dois arquivos antes de confirmar as mudanças: models.json como JSON e config.toml quanto a erros de análise e chaves duplicadas. Foi uma execução em uma única máquina, então isso comprova que os caminhos de backup e restauração existem, não que funcionarão da mesma forma com toda estrutura possível de configuração.
Caminho 2: editar o config.toml manualmente
Editar os arquivos à mão é a melhor saída para quem mantém a configuração em controle de versão ou quer entender o papel de cada campo. Crie o arquivo ~/.codex/models.json com o catálogo de modelos publicado na documentação da DeepSeek. Depois, adicione o trecho abaixo ao ~/.codex/config.toml:
model = "deepseek-v4-flash"
model_provider = "deepseek"
preferred_auth_method = "apikey"
forced_login_method = "api"
model_reasoning_effort = "high"
model_catalog_json = "~/.codex/models.json"
[model_providers.deepseek]
name = "deepseek"
base_url = "https://api.deepseek.com/"
wire_api = "responses"
experimental_bearer_token = "<your DeepSeek API Key>"
| Campo | Função |
|---|---|
wire_api = "responses" | Seleciona a Responses API em vez de Chat Completions. É este campo que faz a integração funcionar |
model_catalog_json | Aponta para o models.json, que declara janela de contexto, níveis de raciocínio e formatos de ferramentas. Sem ele, o Codex recorre a metadados genéricos |
preferred_auth_method, forced_login_method | Autenticam com chave de API em vez de login de uma conta ChatGPT |
model_reasoning_effort | low, high ou max, os três níveis declarados pelo catálogo DeepSeek |
experimental_bearer_token | Sua chave de API, armazenada literalmente no arquivo |
Caminho 3: CC Switch para alternar provedores com frequência
O CC Switch é um aplicativo desktop que gerencia a configuração de provedores para oito ferramentas de programação, incluindo o Codex. Ele traz um preset DeepSeek pronto: endpoint https://api.deepseek.com, deepseek-v4-flash como modelo padrão e Flash e Pro no catálogo de modelos. Em vez de editar arquivos, você grava os mesmos campos por um menu na bandeja do sistema.
Antes de adotá-lo, considere dois pontos. Diferentemente do Claude Code, o Codex precisa ser reiniciado após cada troca para aplicar a mudança. Além disso, um único aplicativo passa a armazenar as credenciais de todos os provedores cadastrados e executa um serviço local para roteá-las — uma postura de segurança diferente de manter uma chave de API em um único arquivo.
Como confirmar que a configuração funcionou
Abra o Codex CLI em um projeto e confira o banner inicial: as linhas model e provider confirmam a configuração. Ao executá-lo com minha configuração de teste em 3 de agosto de 2026, usando codex-cli 0.146.0, o resultado foi:
OpenAI Codex v0.146.0
model: deepseek-v4-flash
provider: deepseek
reasoning effort: high
Uma chave inválida produz uma mensagem característica e informa o endpoint usado, o jeito mais rápido de verificar que as requisições estão saindo para o DeepSeek:
ERROR: unexpected status 401 Unauthorized: Authentication Fails, Your api key: ****r000 is invalid,
url: https://api.deepseek.com/responses
O Codex tentou cinco vezes antes de mostrar esse erro; portanto, um erro de digitação na chave resulta primeiro em alguns segundos sem resposta. No app desktop do ChatGPT para macOS, o seletor de modelos mostra Custom, não o nome do modelo. É apenas o rótulo usado pelo app para qualquer modelo configurado localmente: ele continua usando o modelo DeepSeek escolhido. Se os logs do Codex mostrarem fallback model metadata ou Unknown model, o models.json não foi carregado e o caminho para o catálogo está incorreto.
O que muda ao rodar DeepSeek dentro do Codex
Quatro comportamentos diferem do uso do Codex com um modelo OpenAI. Nenhum deles indica um problema que precise ser corrigido.
Sem entrada de imagens. As entradas DeepSeek no models.json declaram input_modalities: ["text"]. Por isso, capturas de tela coladas e anexos de imagem não estão disponíveis em nenhum cliente Codex enquanto o DeepSeek for o modelo ativo. Um desenvolvedor no Hacker News encontrou a mesma limitação em 2 de agosto de 2026 e contornou o problema mantendo um segundo provedor para visão:
Como o DeepSeek V4 não tem visão, ele fez o OMP usar GPT 5.6 Luna com a assinatura do Codex.
Esse contorno consiste em adicionar um segundo bloco [model_providers.*] apontando para algo que aceite imagens. A estrutura com wire_api = "responses" é a mesma, então um endpoint agregador que ofereça GPT-5.6 entra na mesma configuração; para alternar, basta mudar uma linha model.
As sessões antigas parecem ter sumido. O Codex agrupa o histórico de sessões pelo método de login. Ao sair de uma assinatura ChatGPT para usar uma chave de API de terceiros, o grupo anterior fica oculto, mas não é removido. Restaure a configuração antiga e as sessões voltam a aparecer; as sessões do DeepSeek, por sua vez, ficam ocultas.
A chave fica escrita no arquivo de configuração. O campo experimental_bearer_token armazena a própria chave, não uma referência a uma variável de ambiente. Portanto, ~/.codex/config.toml passa a conter um segredo e merece atenção antes de sincronizar o diretório ou enviar um repositório de dotfiles.
Ele pode se chamar de ChatGPT. O models.json instalado pela integração inclui o prompt de harness do próprio Codex, que começa com "You are Codex, an agent based on GPT-5." Esse prompt tem função prática: define o protocolo de ferramentas, as regras de aprovação e o formato de saída seguido pelo agente. Por isso, o comportamento é diferente do mesmo modelo em uma janela de chat simples; a linha de identidade vem do harness, não de uma alegação de linhagem feita pelo modelo.
Quanto custa
O deepseek-v4-flash custa US$ 0,14 por milhão de tokens de entrada sem cache e US$ 0,28 por milhão de tokens de saída, valores verificados na página de preços da DeepSeek em 3 de agosto de 2026. Uma entrada com cache custa US$ 0,0028 por milhão de tokens — cinquenta vezes menos do que uma entrada sem cache. Essa diferença determina o custo de sessões longas de agentes, já que um agente de programação reenvia um contexto cada vez maior a cada turno.
| deepseek-v4-flash | deepseek-v4-pro | |
|---|---|---|
| Funciona no Codex | Sim | Ainda não |
| String de versão | DeepSeek-V4-Flash-0731 | DeepSeek-V4-Pro |
| Contexto / saída máxima | 1M / 384K | 1M / 384K |
| Entrada, cache hit | $0.0028 | $0.003625 |
| Entrada, cache miss | $0.14 | $0.435 |
| Saída | $0.28 | $0.87 |
| Limite de concorrência | 2500 | 500 |
A tabela não mostra dois detalhes. A DeepSeek informa que haverá preços de pico e fora de pico, com cobrança de 2× os valores listados nos horários de pico, das 09:00 às 12:00 e das 14:00 às 18:00 no horário de Pequim (UTC+8), diariamente. A data de início ainda será anunciada. Além disso, o catálogo declara que a janela de contexto de 1M tem 95% de capacidade efetiva, com truncamento aplicado conforme a política definida no models.json.
Perguntas frequentes
Posso usar DeepSeek no Codex sem uma assinatura ChatGPT?
Sim. preferred_auth_method = "apikey" e forced_login_method = "api" fazem o Codex autenticar com sua chave DeepSeek e ignorar completamente o login da conta.
A extensão do VS Code e o app desktop exigem configurações separadas?
Não. Os três clientes Codex leem a mesma configuração em ~/.codex. Reinicie o cliente desktop após uma troca para que ele carregue a alteração.
Como volto ao modelo oficial?
Execute novamente o script de configuração e escolha a opção 3, que restaura o config.toml salvo em backup antes da instalação. Se você configurou o Codex manualmente, remova os campos DeepSeek e o bloco [model_providers.deepseek], depois faça login de novo.
Já posso usar deepseek-v4-pro no Codex?
Não, em 3 de agosto de 2026. O suporte à Responses API ainda está marcado com ✗ na página de preços da DeepSeek. A previsão anunciada era o início de agosto de 2026, então confira novamente a página em vez de confiar em uma configuração que permite selecioná-lo.
Qual caminho escolher
| Opção | Escolha quando | Custo da escolha |
|---|---|---|
| Script oficial de configuração | Você quer colocar tudo para funcionar com um comando e ter backup/restauração | Reescreve campos de uma configuração que você talvez não tenha revisado; a chave fica em texto simples |
config.toml manual | Você mantém dotfiles em controle de versão ou precisa conhecer cada campo | Você mesmo mantém o models.json, e um caminho errado para o catálogo degrada silenciosamente os metadados |
| CC Switch | Você alterna entre DeepSeek, uma assinatura oficial e outros provedores | Um aplicativo concentra todas as credenciais e executa um serviço local; o Codex precisa ser reiniciado a cada troca |
A questão em aberto é o Pro. O Flash é a opção barata, rápida e exclusiva para texto da linha, enquanto o modelo que mais gente provavelmente quer em um loop de agente ainda não fala o protocolo exigido pelo Codex. Até essa nota mudar, escolher DeepSeek para o Codex é escolher o Flash deliberadamente.
Leitura relacionada: Codex vs Claude Code · Como usar GLM-5.2 no Claude Code