Pular para o conteúdo
artigos
CodexClaude CodeAI CodingBenchmarksDeveloper Tools

Codex vs Claude Code: 48 rodadas em tickets reais, e o ticket decidiu

Rodei o Codex e o Claude Code em 8 tickets reais de um repo em produção, 48 rodadas ao mesmo preço por token, avaliadas pelos testes ocultos dos commits reais. Os dois escrevem código que funciona a partir de um ticket claro. Diferem em velocidade, cuidado e conta, e onde os dois falharam, meu ticket tinha se calado.

Os dois agentes escreveram código que funciona para todo ticket que dizia o que queria. Onde falharam, meu ticket tinha se calado.

Escolha o Claude Code se você fica junto do agente e vai conduzindo. Escolha o Codex se você entrega o ticket e vai fazer outra coisa. Os dois escrevem código que funciona a partir de um ticket claro: dei a eles 8 tickets reais do código deste site, 48 rodadas no total, e conferi cada resultado com testes que eles nunca viram.

O Claude Code é a minha ferramenta do dia a dia. A fintech cripto de 13 apps que eu entreguei sozinho em 70 dias rodou nele. O Codex eu conheço deste teste: 24 rodadas headless nos mesmos tickets, mais a documentação e o código-fonte dele. Leia o lado do Codex com isso em mente.

Livro gratuito · 177 páginas · PDF + EPUB

O Codex e o Claude Code acertaram todo ticket que descrevia o comportamento e erraram onde o meu se calou. O livro, em português, traz templates de spec para descrevê-lo.

Receber o livro gratuito

Os dois escrevem código que funciona a partir de um ticket claro

Num ticket que diz o que quer, todo modelo que eu rodei escreveu código que passou: Sonnet 5.5 e Haiku 5.5 no Claude Code, GPT-6.1 Sol e GPT-6 Luna no Codex, os baratos incluídos. Para o código em si, você não está escolhendo um modelo. Está escolhendo velocidade, cuidado e um plano.

Voltei o código deste site para logo antes de 8 mudanças que eu tinha entregado, dei o ticket a cada agente e avaliei o código dele com os testes da minha mudança real, que ele nunca viu. Cada ferramenta rodou um modelo de preço médio e um barato, pareados pelo preço por token. O método completo está no fim. Sete tickets, as duas ferramentas, todos os modelos, todas as rodadas: resolvidos. Brinque com o recorte que importa para você:

48 rodadas, em recortes

Cada rodada é um agente, um ticket, uma tentativa. Resolvida significa que todo teste oculto do commit real passou.

Nível do modelo
Tamanho da tarefa
Medida
Nota pelo

Resolvidas · maior é melhor

Claude Code22 de 24
Codex21 de 24

Por tarefa (✓ resolvida, ✗ não)

Tamanho da tarefaClaude CodeCodex
Cadastro mantém o idiomapequena 3 de 3 3 de 3
Deduplicar por 10 minutospequena 3 de 3 3 de 3
HEAD no leitorpequena 3 de 3 3 de 3
IDs de clique de anúnciomédia 3 de 3 3 de 3
Cache de um anomédia 3 de 3 3 de 3
País e UTMsmédia 3 de 3 3 de 3
Header de preview do GTMmédia 3 de 3 3 de 3
Site do livro a partir do bucketgrande 1 de 3 0 de 3
O custo é o preço de lista da API por rodada. Linhas são as adicionadas mais as removidas, testes e docs incluídos. O ticket grande conta com um dos meus testes corrigido; Como eu testei explica por quê. Mude para o Teste original para ver os totais sem essa correção.

Um ranking público, o Coding Agent Index da Artificial Analysis, põe o Codex com GPT-6.1 Sol na frente, 60 a 55, a US$ 0,89 contra US$ 1,24 por tarefa. As tarefas dele são mais difíceis e escritas por estranhos. As minhas são tickets de um repo real, escritos do jeito que eu escrevo. Se os seus tickets parecem com os meus, confie no empate. Se você entrega aos agentes problemas que ninguém especificou, confie no deles.

Eles falham onde o seu ticket se cala

Onde o ticket não diz nada, o agente decide, e a escolha dele é sensata, só que não é a sua. Dez das catorze falhas no meu ticket grande vieram de um valor que eu nunca escrevi.

O ticket grande pedia um módulo inteiro: servir o site estático de um livro a partir de um bucket privado em /read, com cache, analytics, paths seguros e um noindex em toda resposta. Entreguei a seção do README que foi junto com o módulo real, 464 palavras. Aqui está ela ao lado de dois tickets para a mesma rota que passaram em todas as rodadas:

Dois jeitos de escrever o mesmo ticket

O que fixaTicket claro, 6 de 6 passaramTicket grande, 1 de 6O que os agentes chutaram
O header“the browser should keep it for a year with Cache-Control: public, max-age=31536000, immutable”“assets/site.css|js one year when the URL has the content hash ?v=”Os próprios headers de asset, em 5 de 6 rodadas
O corpo“A HEAD request must answer with the same status and headers a GET would get (including Content-Type and X-Robots-Tag), with an empty body”“A missing or forbidden object is a plain 404”Um 404 que diz Not found, em 2 de 6 rodadas
Cada path“pagefind/pagefind.js, pagefind/pagefind-worker.js, pagefind/wasm.<lang>.pagefind ... one day, public, max-age=86400”“/read/<slug>/<lang>/[<page>] serves a book as a website.”Uma pasta pagefind/ que não serve o index.html dela, em 3 de 6 rodadas
Linhas reais. Ticket claro: os tickets que meu agente escreveu a partir de duas correções que entreguei mais tarde naquele dia nessa rota, o cache de um ano (linhas 1 e 3) e o HEAD (linha 2), cada um aprovado nas 6 rodadas. Ticket grande: o README que escrevi para o ticket grande. As contagens vêm da tabela de falhas abaixo.

Escreva o seu ticket como o ticket claro. Cada valor que você deixa de fora, o agente escolhe por você. E termine todo ticket com as quatro linhas que eu daria a um colega:

Work in this repository and follow AGENTS.md. Update or add tests for the
new behavior, and update any docs in the repo that describe it. Before you
finish, run `pnpm verify` and make sure it passes. Do not commit and do not push.

Aqui estão as catorze falhas, uma por uma:

Por que o ticket grande falhou

O que o teste queriaClaude CodeCodexPor quê
Uma pasta como pagefind/ serve o index.html dela12Meu ticket: nunca disse isso
Headers exatos de asset: immutable, nosniff, os tipos do wasm e do CSS23Meu ticket: disse um ano, nunca o header
Uma página inexistente responde com corpo vazio02Meu ticket: disse só um 404 simples
O contexto da página escrito como texto JSON20Meu teste: procurava o texto exato, e o código estava certo
Ignorar as minhas próprias visitas no analytics02O agente: o ticket dizia isso
Testes ocultos que falharam nas 3 rodadas por ferramenta (2 com o modelo de preço médio, 1 com o barato); uma rodada conta uma vez por teste em que falhou. A linha do texto JSON é uma rodada do Haiku que falhou em dois testes pelo mesmo motivo. Classifiquei cada falha lendo o código do agente contra as palavras do ticket.

Dez das catorze são minhas. Duas vêm de uma rodada e de um teste que lia código como texto. Duas falhas foram do próprio agente: o Codex largou uma regra que o ticket dizia, então as minhas próprias visitas teriam caído no analytics. Uma verificação no meu próprio teste também estava errada; corrigi e avaliei o ticket grande pelo teste corrigido, e Como eu testei tem os detalhes.

Nenhuma das ferramentas lê mentes. As duas constroem o que o ticket diz, e o espaço entre “o que eu escrevi” e “o que eu quis dizer” é onde um ticket grande falha. Eu escrevo specs exatamente por isso, e este benchmark é a prova mais limpa que eu tenho: nos sete tickets que fixavam o comportamento, 42 de 42 rodadas passaram. Esses sete foram escritos para cobrir os testes deles, então esse número é em parte proposital. O ticket grande é o honesto: escrito por uma pessoa com pressa, com lacunas que ninguém notou até dois agentes caírem nelas.

Reescreva o ticket, não rode de novo

Quando um agente falha no seu ticket, reescreva o ticket antes de rodar de novo. Nas minhas rodadas, a falha grudava no ticket, não na sorte: sete tickets passaram todas as vezes, e o grande passou uma vez em seis.

O conselho de sempre é rodar de novo um agente instável e ficar com o melhor resultado. Essa conta supõe que cada rodada é um cara ou coroa novo: com os 90% das minhas rodadas que passaram, duas tentativas resolveriam 99% das vezes. Deslize os tickets difíceis e veja essa promessa encolher:

pass@k vs pass^k

Os outros tickets passam em 100% das execuções.

Taxa média por execução: 90%

Pelo menos uma passa (pass@k)

Se cada execução fosse cara ou coroa na taxa média99%

Nestes tickets91%

Todas passam (pass^k)

Nestes tickets88%

43 das minhas 48 rodadas passaram, cerca de 90%. Sete tickets passaram todas as vezes e o grande 1 vez em 6, então uma segunda tentativa leva a taxa real para cerca de 91%, não 99%.

A segunda tentativa mudou, sim, um veredito: as duas rodadas do Claude Code com o modelo de preço médio no ticket grande se dividiram, uma passou e uma falhou, e esse acerto é a diferença entre 22 e 21.

Livro gratuito · 177 páginas · PDF + EPUB

No meu maior ticket, a maioria das falhas do Codex e do Claude Code foram decisões que faltavam na spec. Os templates do livro põem as decisões por escrito antes.

Receber o livro gratuito

O Claude Code voltou duas vezes mais rápido

No Claude Code, um ticket típico voltava em menos de dois minutos. No Codex, mais perto de quatro. Se você espera no terminal enquanto ele trabalha, vai sentir isso em todo ticket. Nos modelos baratos a diferença cresce para 2,3 minutos contra 7,6, tempo suficiente para ir fazer outra coisa.

Para onde foi o tempo

Rodada mediana, GPT-6.1 Sol vs Sonnet 5.5÷ 2,2
Codex: 3,7 min
Claude Code: 1,7 min
Esperando o modelo, preço médio÷ 3,1
Codex: 2,8 min
Claude Code: 0,9 min
Rodando comandos, preço médioquase igual
Codex: 35 s
Claude Code: 38 s
Rodada mediana, GPT-6 Luna vs Haiku 5.5÷ 3,2
Codex: 7,6 min
Claude Code: 2,3 min
Medianas por rodada; as partes também são medianas, então não somam o total. Comandos incluem testes, o type checker e as buscas do próprio agente.

As duas ferramentas registram um timestamp em todo evento, então dividi cada rodada em tempo rodando comandos e tempo esperando o modelo. Com os modelos de preço médio, as duas gastaram o mesmo tempo em comandos; toda a diferença é o modelo. O Codex também volta ao modelo mais vezes, cerca de 18 por ticket contra cerca de 14, e cada vez que ele volta, você espera de novo. Nos modelos baratos, o Luna também gastou três vezes mais tempo em comandos, 163 segundos contra 50.

Minhas requisições do Codex passaram por um gateway, e a Artificial Analysis mede os dois com menos de um minuto de diferença, 12,3 minutos contra 13,3 nas tarefas dela, então não baseie a sua escolha no meu relógio. Na minha máquina, nos meus tickets, o Claude Code respondeu enquanto eu ainda estaria esperando.

O Codex arruma. O Claude Code avisa.

Nenhuma das ferramentas saiu do ticket nem disse pronto com um check vermelho. A diferença aparece quando algo que ela não quebrou está no caminho: o Codex conserta e te conta, o Claude Code te conta e deixa como está. Se você revisa todo diff de qualquer jeito, o cuidado extra do Codex te custa dois minutos por ticket. Se não revisa, é o motivo para escolher o Codex.

O Reddit tem uma lista de reclamações sobre esses dois. O Claude Code edita arquivos que ninguém pediu. Diz “pronto” quando não está. O Codex fica no escopo. Eu contei.

As reclamações, contadas em 24 rodadas de cada

Claude CodeCodex
Mudou código que o ticket não pedia00
Disse pronto com os checks vermelhos00
Adicionou ou atualizou testes2424
Atualizou a documentação2424
Edições de docs bloqueadas em .claude/, sem ninguém para dizer sim80
Consertou um check falhando que não causou (de 9)59
Deixou os checks do repo passando2024
Mediana de linhas de teste escritas, modelos de preço médio4598
Mediana de comandos de shell, modelos de preço médio1323
Os checks são o pnpm verify (tipos, lint, formatação, testes), rodado de novo fora do sandbox depois de cada rodada. Edições de docs foram pedidas em todo ticket, então não contam como fora do escopo. As duas tocaram arquivos fora do commit real só onde o ticket precisava, como o assinador de URL que o ticket grande reaproveitou.

Três dos meus oito pontos de partida já falhavam nos checks antes de o agente tocar em qualquer coisa: um arquivo de regras em .claude/ que quebrava o formatter, numa parte do repo que o ticket nunca mencionou. O Codex consertou nas nove rodadas e avisou, o que faz do Codex quem editou um arquivo que ninguém pediu. O Claude Code consertou em cinco, sempre rodando o formatter pelo shell, e nas outras quatro deixou como estava de propósito: fora desta tarefa, ele disse, e os checks falhariam num arquivo que ele não tinha tocado.

Aquela pasta custou ao Claude Code mais que o formatter. Ele pergunta antes de editar qualquer coisa em .claude/, e numa rodada headless não tem ninguém para dizer sim. Em oito rodadas, a documentação que ele queria atualizar morava ali, e em seis delas o meu commit real tinha atualizado esse mesmo arquivo. O Codex não perdeu nenhuma. Numa sessão ao vivo, aquela pasta te custa uma tecla. Numa rodada que ninguém acompanha, custa a edição.

Com os modelos de preço médio, o Codex escreveu o dobro de linhas de teste; com os baratos, os dois empataram.

A conta empata até você ir para o modelo barato

Esta seção é a sua conta só se você paga por token, com uma chave de API ou no CI. Num plano, pule para a próxima. Por token, os modelos de preço médio empatam em cerca de US$ 0,43 por ticket resolvido. A armadilha é o Haiku no Claude Code numa tarefa longa: acima de 100K tokens de contexto ele cobra cinco vezes mais, e a minha única rodada longa com Haiku custou US$ 1,01, enquanto o Codex com Luna custou US$ 0,10.

O empate tem uma história. As contas foram US$ 6,51 para o Claude Code e US$ 6,12 para o Codex, em 16 rodadas de preço médio cada, e o Claude Code empata por ticket resolvido porque resolveu um a mais. Ele foi mais barato em cinco dos sete tickets claros e mais caro no grande.

Por baixo está o cache. Um agente reenvia a conversa inteira a cada turno. O que ele já enviou é lido de volta do prompt cache a um vigésimo do preço de input; a parte nova precisa ser gravada primeiro, e gravar custa mais que ler de volta. Nas minhas rodadas de preço médio, 93% dos tokens de input foram leituras, e leituras custam o mesmo nas duas. Gravar, não: a Anthropic cobra as escritas no cache de uma hora a 2x o preço de input, e a OpenAI cobra as escritas no cache de 30 minutos a 1,25x. As escritas foram a maior linha das duas contas, US$ 3,49 dos US$ 6,51 do Claude Code e US$ 3,10 dos US$ 6,12 do Codex. As rodadas do Claude Code foram mais curtas, cerca de um terço a menos de tokens lidos e gravados por rodada, e foi isso que equilibrou.

A armadilha do Haiku é uma linha de preço. O Haiku 5.5 custa US$ 0,10 por milhão de tokens de input até 100K tokens de contexto e US$ 0,50 acima disso, e o Claude Code dá ao Haiku uma janela de um milhão de tokens, então nada impede uma tarefa longa de cruzar essa linha. No ticket grande, 64 das 69 requisições do Claude Code com Haiku levavam mais de 100K tokens, até 228K. O Codex roda o Luna com uma janela de 258.400 tokens, abaixo da linha de 272K em que o preço da OpenAI sobe. Essa única rodada explica a maior parte de por que os modelos baratos marcam US$ 0,19 por ticket resolvido no Claude Code e US$ 0,05 no Codex.

Mesmo preço de lista, conta diferente

A

Leituras do cache
US$ 0,06
Escritas no cache
US$ 0,17
Saída
US$ 0,07

Com o cacheUS$ 0,30

B

Leituras do cache
US$ 0,10
Escritas no cache
US$ 0,18
Saída
US$ 0,07

Com o cacheUS$ 0,35

GPT-6.1 Sol, cache de 30 minutos custa 15% a mais que Sonnet 5.5, cache de 1 hora.

Ajustado para a rodada mediana de preço médio de cada ferramenta: Sonnet 5.5 com 0,69M tokens de input, GPT-6.1 Sol com 1,04M. Dê aos dois os mesmos tokens e o Sol sai mais barato, tudo nas escritas. Escolha as duas linhas do Haiku para ver a linha do contexto longo. Preços por milhão de tokens, 22 de outubro de 2026.

Para onde vão os tokens, e por que a maioria deles é o agente relendo o próprio passado, é o assunto de onde morrem os tokens do seu agente.

Fique com o plano que você já paga

Os dois resolvem os mesmos tickets, então trocar compra velocidade ou cuidado, não código melhor. Fique com o plano de US$ 20 que você tem, a não ser que queira que ele funcione em outras ferramentas: um plano ChatGPT funciona, um plano Claude não. No ChatGPT Plus você tem muito mais mensagens do Luna que do Sol, e nos meus tickets claros o Luna passou em todas as rodadas. Só levou 7,6 minutos por ticket.

Planos que incluem cada agente

PlanoPreçoPara código
Claude ProUS$ 20/mêsClaude Code incluído; um limite por sessão de 5 horas mais um limite semanal, compartilhados com os apps Claude
Claude MaxUS$ 100 / US$ 2005x ou 20x o uso do Pro
ChatGPT Free e GoUS$ 0 / US$ 8GPT-6 Luna no app desktop do Codex, em liberação gradual; sem Codex Cloud
ChatGPT PlusUS$ 20/mês15 a 160 mensagens locais do GPT-6.1 Sol a cada 5 horas, 350 a 3.000 no Luna
ChatGPT ProUS$ 100 / US$ 200 / US$ 500Sem limite de cinco horas por enquanto; limites semanais podem valer
Da claude.com/pricing e da página de preços do Codex da OpenAI, 22 de outubro de 2026. O Claude Pro sai a US$ 17 por mês no plano anual. Passando dos limites, os dois vendem uso extra em créditos.

Esse critério vai durar mais que todos os números deste artigo. Um plano Claude cobre os produtos da própria Anthropic, Claude Code incluído, e a Anthropic proíbe ferramentas de terceiros de oferecer login com Claude. Um plano ChatGPT funciona no Codex e, desde 29 de setembro de 2026, também em ferramentas de terceiros participantes. Eu fiz esse caminho em OpenCode vs Claude Code, e a conta de um plano fixo contra preços de API está em Claude Max vale a pena?. As duas páginas de preços: claude.com/pricing e preços do Codex da OpenAI.

Mesmas features, padrões opostos

Toda feature que você procuraria está nas duas. O que muda é o padrão: o Codex prende o agente numa caixa até você soltar, e o Claude Code deixa ele rodar até você prender. De fábrica, o Claude Code também roda o Opus 5.5, que eu não testei; o Sonnet 5.5 bastou para todos os tickets claros.

Lado a lado

Claude CodeCodex
Sandbox por padrãoDesligado, ligue com /sandboxLigado: escrita só no workspace, rede desligada
AprovaçõesSeis modos de permissão; auto é o padrão no terminal e no VS CodeOn request, never ou granular, mais um agente opcional de auto-review
Arquivo de instruçõesCLAUDE.md, ou AGENTS.md quando não há umAGENTS.md, em camadas por diretório, até 32 KiB
Subagents, skills, hooks, MCPOs quatroOs quatro
Agente na nuvemClaude Code na web, do Pro para cimaCodex Cloud, do Plus para cima
EditoresVS Code, JetBrainsVS Code e seus forks
Headlessclaude -pcodex exec, só leitura a menos que você diga
GitHubGitHub Actions; Code Review no Team e no Enterpriseopenai/codex-action
Modelo padrãoOpus 5.5 com esforço médioNão documentado; o código-fonte lista o GPT-6.1 Sol primeiro, com esforço baixo
Da code.claude.com/docs e da learn.chatgpt.com/docs, 22 de outubro de 2026. Um dos primeiros resultados para essa busca diz que o Codex não tem skills. Tem, documentadas na parte de configuração de agentes.

Nenhum dos padrões rodou no meu teste: dei aos dois um sandbox e esforço high, que é quanto tempo o modelo pensa antes de cada passo. De fábrica o Codex pensa menos, com esforço baixo, e isso também não é o que eu medi.

Conduza com o Claude Code, delegue ao Codex

Os dois resolveram os mesmos tickets, então escolha pelo hábito que você já tem.

Escolha o Claude Code se

  1. 01Você conduz enquanto ele trabalha e quer a resposta mais cedo
  2. 02Você já paga um plano Claude
  3. 03Você revisa todo diff de qualquer jeito
  4. 04Você quer suporte a JetBrains

Escolha o Codex se

  1. 01Você entrega o ticket e volta depois
  2. 02Você já paga o ChatGPT, ou quer o plano em outras ferramentas
  3. 03Você quer os checks rodados e verdes sem precisar pedir
  4. 04Você roda modelos pequenos em tarefas longas
Comparação entre “Escolha o Claude Code se” (4 itens) e “Escolha o Codex se” (4 itens).

Codex ou Claude Code?

Quatro perguntas sobre como você trabalha. A resposta vem com o motivo e com o que vigiar.

Como você trabalha com o agente?

O segundo plano compra um revisor

Se você já paga um, o segundo vale como revisor, não como um escritor melhor. Deixe o Claude Code construir enquanto você conduz, depois peça para o Codex ler o diff contra o ticket antes do merge.

Os dois leem o mesmo AGENTS.md, então um arquivo de instruções só move os dois, e custa um comando a mais. Eu não rodei esse pipeline num time; é o que os meus números sugerem. O harness em volta dos agentes, os checks e o review, faz mais pela qualidade do que o agente que escreve o código.

Dois agentes, um ticket

Entrada

Um ticket que define o comportamento e a interface

  1. vocêEscrever o AGENTS.md uma vez

    As duas ferramentas leem. Sem CLAUDE.md, ou mantenha um que aponte para ele.

  2. Claude CodeConstruir a mudança

    O loop rápido: você conduz enquanto ele trabalha.

  3. CodexRevisar contra o ticket

    O codex exec começa em só leitura: lê o diff contra o ticket e aponta o que falta.

  4. Gate:CIRodar os checks completos fora de qualquer sandbox
  5. Gate:vocêAprovar o diff

Saída

Uma mudança em que dois agentes e os checks concordam

Como eu testei, para quem duvida

Tudo acima se apoia nos detalhes abaixo. Se você quiser rodar de novo no seu próprio repo, esta é a receita.

O teste

tickets reais
8
do Worker deste site
rodadas
48
24 por ferramenta
total a preço de API
US$ 14,33
todas as 48 rodadas
'pronto' com check vermelho
0
em nenhuma das ferramentas

Peguei 8 commits reais do Cloudflare Worker deste site (TypeScript: captura de leads, downloads, um leitor de livros), de uma correção de 25 linhas a um módulo de 647 linhas. Para cada um: um git worktree novo no pai do commit, que é uma cópia limpa do repo como ele estava logo antes da mudança, um ticket, e o agente sozinho com ele. Quando o agente para, o arquivo de teste do commit real entra e roda. A mesma ideia do SWE-bench, no meu próprio código. Conferi os 8 antes: cada teste oculto falha no commit pai e passa na correção real. Dos 128 testes ocultos, 103 já passavam antes da mudança; eles conferem que o agente não quebrou o que funcionava. Os outros 25 são o ticket.

Os tickets vêm em dois tipos, de propósito. Meu agente escreveu sete deles a partir dos commits reais: o comportamento e a interface que o teste confere, nunca o código. O oitavo, o grande, é a seção do README que foi junto com o módulo real, como foi escrita na época, mais a interface que o teste importa. Todo ticket terminava com as quatro linhas acima.

Os 8 tickets

TicketTamanhoDiff realTestes ocultos
O cadastro mantém o idioma do leitorcorreção pequena+34 −1020
Deduplicar um lead por 10 minutos, não 24 horascorreção pequena+30 −1614
Requisições HEAD no leitor de livroscorreção pequena+16 −914
Guardar IDs de clique de anúncio no contatofeature média+106 −3014
Cache de um ano para arquivos com hashmédia+59 −415
País e UTMs no contatofeature média+96 −4416
Preview do GTM server-side a partir de cookiesfeature média+62 −221
Servir o site estático de um livro a partir do bucketgrande, módulo novo+647 −414
O diff real conta todos os arquivos do commit original, testes e docs incluídos.

O repo tem um AGENTS.md e nenhum CLAUDE.md, então as duas ferramentas leem as mesmas instruções. O Codex lê o AGENTS.md nativamente. O Claude Code lê quando não há um CLAUDE.md.

Os modelos são pareados por preço, porque preço é como você escolhe de verdade. Sonnet 5.5 e GPT-6.1 Sol têm o mesmo preço de lista, US$ 2 por milhão de tokens de input, US$ 0,10 em cache e US$ 10 de output (OpenAI, Anthropic), e o GPT-6.1 Sol é o modelo que o Codex recomenda. Haiku 5.5 e GPT-6 Luna têm os dois US$ 0,10, US$ 0,01 e US$ 0,50. O esforço é high nos dois. As duas ferramentas rodaram headless e com sandbox, cada ticket nas duas ao mesmo tempo, na mesma máquina:

Os dois comandos, por rodada

  • Claude Code

    claude -p "$TICKET" --model claude-sonnet-5-5 --effort high --permission-mode acceptEdits --settings '{"sandbox":{"enabled":true,"autoAllowBashIfSandboxed":true}}' --setting-sources project --strict-mcp-config --output-format stream-json --verbose
  • Codex

    codex exec -m gpt-6.1-sol -c model_reasoning_effort="high" -s workspace-write --json "$TICKET"

Configuração

Claude CodeCodex
Versão2.1.307 (2.1.308 nas últimas 7 rodadas)CLI 0.163.0
Modelo de preço médioSonnet 5.5GPT-6.1 Sol
Modelo baratoHaiku 5.5GPT-6 Luna
Esforçohighhigh
Modoclaude -p, edições aceitas automaticamentecodex exec, escrita no workspace
SandboxLigado, shell liberado automaticamente dentro deleLigado, rede desligada
Rodadas2 por ticket no Sonnet, 1 no Haiku2 por ticket no GPT-6.1 Sol, 1 no Luna
O Claude Code se atualizou sozinho uma vez durante a noite. Nenhuma das ferramentas carregou servidores MCP, o Codex rodou com uma chave de API, e nenhuma bateu em limite de uso. O Codex também carregou as skills instaladas na minha pasta home; o Claude Code rodou só com as configurações do projeto.

Os dois sandboxes quebraram os meus checks, de jeitos diferentes. O sandbox do Codex desliga a rede, e o pnpm tentou baixar a versão que o repo fixa. Em 21 de 24 rodadas o Codex ainda conseguiu fazer o próprio pnpm verify rodar, quase sempre desligando a troca de versão do pnpm; nas outras 3, rodou as etapas uma por uma. No sandbox do Claude Code, o pnpm não conseguiu travar o store dele. O Claude Code pediu para rodar fora do sandbox, o modo headless recusou, e ele rodou cada etapa direto de node_modules/.bin. Numa sessão ao vivo você aprova cada um desses pedidos com uma tecla. É por isso que os checks de toda rodada foram rodados de novo fora do sandbox.

O custo é o preço de lista da API, a partir da contagem de tokens de cada rodada. O Claude Code informa o próprio custo a preço de lista por rodada. Para o Codex, precifiquei a contagem de tokens pela lista da OpenAI, escritas no cache incluídas, na taxa de 30 minutos: o Codex 0.163.0 é anterior à opção de cache de 12 horas da OpenAI.

Um dos meus testes estava errado

No ticket grande, toda rodada falhou na mesma asserção: uma requisição HEAD tinha que chegar ao bucket como HEAD. Essa asserção era bug meu. O Worker lê o bucket por uma URL pré-assinada, e a assinatura cobre o método HTTP, como um ingresso carimbado para uma porta só: assinado para GET, o bucket barra um HEAD. Corrigi isso um commit depois, e essa correção é o terceiro ticket pequeno deste benchmark. As seis rodadas tinham lido “the Worker signs a GET” no ticket e mantido o GET. Elas estavam certas e o meu teste estava errado.

Então eu avalio o ticket grande pelo teste como ele ficou depois da minha correção, e mostro os dois. Com o teste original nenhuma rodada passa, os totais ficam 21 a 21, e o custo por ticket resolvido do Claude Code com o modelo de preço médio vai de US$ 0,43 para US$ 0,46. Com o corrigido, o Claude Code com Sonnet 5.5 passa uma vez em duas rodadas, e é daí que vem o 22 dele. Uma rodada em duas não é uma vitória em que eu apostaria. O explorador lá em cima alterna entre os dois.

Codex vs Claude Code, respostas rápidas

O Codex é melhor que o Claude Code?

Não nos meus tickets. Em 8 tickets reais ao mesmo preço por token, o Claude Code resolveu 22 de 24 rodadas e o Codex 21 de 24, e o custo por ticket resolvido empatou com os modelos de preço médio. O Codex foi mais cuidadoso: consertou o que estava no caminho, escreveu o dobro de linhas de teste com o modelo de preço médio e deixou os checks verdes em todas as rodadas. O Claude Code terminou em menos da metade do tempo. O índice público da Artificial Analysis põe o Codex na frente, 60 a 55, em tarefas públicas mais difíceis.

Qual modelo escreve código melhor, Codex ou Claude Code?

Num ticket claro, nenhum dos quatro que eu rodei. Sonnet 5.5 e Haiku 5.5 no Claude Code, GPT-6.1 Sol e GPT-6 Luna no Codex: toda rodada passou nos meus sete tickets claros. Toda falha foi num único ticket grande que deixou valores sem dizer, e os agentes preencheram esses valores com os próprios padrões.

Qual é mais barato, Codex ou Claude Code?

Os dois planos começam em US$ 20 por mês. A preços de API, com modelos do mesmo preço de lista, o custo por ticket resolvido empatou no meu teste: US$ 0,43 para o Claude Code com Sonnet 5.5 e US$ 0,44 para o Codex com GPT-6.1 Sol. Os modelos pequenos diferem: o Haiku 5.5 cobra 5x por token acima de 100K tokens de contexto, então numa tarefa longa o Codex com GPT-6 Luna custou um décimo.

Qual é mais rápido, Codex ou Claude Code?

O Claude Code, nas minhas rodadas: mediana de 1,7 minuto por ticket com o modelo de preço médio contra 3,7 do Codex. Os dois gastaram o mesmo tempo rodando comandos; a diferença foi a espera pelo modelo, e as minhas requisições do Codex passaram por um gateway. A Artificial Analysis mede os dois com menos de um minuto de diferença.

O Claude Code edita arquivos que você não pediu?

Não nas minhas 48 rodadas. Nenhuma das ferramentas mudou código fora do que o ticket pedia, e nenhuma disse pronto com os checks vermelhos. O único arquivo que ninguém pediu, um arquivo de regras que já falhava no formatter, foi consertado pelo Codex nas nove rodadas que o encontraram e pelo Claude Code em cinco.

O Codex e o Claude Code podem usar o mesmo arquivo de instruções?

Sim. O Codex lê o AGENTS.md nativamente, em camadas por diretório. O Claude Code lê o AGENTS.md quando o repo não tem CLAUDE.md. No meu teste, as duas ferramentas leram o mesmo AGENTS.md.

O Codex CLI é gratuito?

O Codex CLI é open source; os modelos não são. Faça login com um plano ChatGPT ou use uma chave de API. Os planos Free e Go ganham o GPT-6 Luna no app desktop do Codex conforme a liberação avança, sem Codex Cloud. O Plus, a US$ 20 por mês, é o primeiro plano com o GPT-6.1 Sol.