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 gratuitoOs 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.
Resolvidas · maior é melhor
- Claude Code22 de 24
- Codex21 de 24
Por tarefa (✓ resolvida, ✗ não)
| Tamanho da tarefa | Claude Code | Codex |
|---|---|---|
| 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 |
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 fixa | Ticket claro, 6 de 6 passaram | Ticket grande, 1 de 6 | O 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 |
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 queria | Claude Code | Codex | Por quê |
|---|---|---|---|
| Uma pasta como pagefind/ serve o index.html dela | 1 | 2 | Meu ticket: nunca disse isso |
| Headers exatos de asset: immutable, nosniff, os tipos do wasm e do CSS | 2 | 3 | Meu ticket: disse um ano, nunca o header |
| Uma página inexistente responde com corpo vazio | 0 | 2 | Meu ticket: disse só um 404 simples |
| O contexto da página escrito como texto JSON | 2 | 0 | Meu teste: procurava o texto exato, e o código estava certo |
| Ignorar as minhas próprias visitas no analytics | 0 | 2 | O agente: o ticket dizia isso |
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:
Pelo menos uma passa (pass@k)
Se cada execução fosse cara ou coroa na taxa média
Nestes tickets
Todas passam (pass^k)
Nestes tickets
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.
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 minClaude Code: 1,7 min
- Esperando o modelo, preço médio÷ 3,1
- Codex: 2,8 minClaude Code: 0,9 min
- Rodando comandos, preço médioquase igual
- Codex: 35 sClaude Code: 38 s
- Rodada mediana, GPT-6 Luna vs Haiku 5.5÷ 3,2
- Codex: 7,6 minClaude Code: 2,3 min
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 Code | Codex | |
|---|---|---|
| Mudou código que o ticket não pedia | 0 | 0 |
| Disse pronto com os checks vermelhos | 0 | 0 |
| Adicionou ou atualizou testes | 24 | 24 |
| Atualizou a documentação | 24 | 24 |
| Edições de docs bloqueadas em .claude/, sem ninguém para dizer sim | 8 | 0 |
| Consertou um check falhando que não causou (de 9) | 5 | 9 |
| Deixou os checks do repo passando | 20 | 24 |
| Mediana de linhas de teste escritas, modelos de preço médio | 45 | 98 |
| Mediana de comandos de shell, modelos de preço médio | 13 | 23 |
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 cache
B
- Leituras do cache
- US$ 0,10
- Escritas no cache
- US$ 0,18
- Saída
- US$ 0,07
Com o cache
GPT-6.1 Sol, cache de 30 minutos custa 15% a mais que Sonnet 5.5, cache de 1 hora.
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
| Plano | Preço | Para código |
|---|---|---|
| Claude Pro | US$ 20/mês | Claude Code incluído; um limite por sessão de 5 horas mais um limite semanal, compartilhados com os apps Claude |
| Claude Max | US$ 100 / US$ 200 | 5x ou 20x o uso do Pro |
| ChatGPT Free e Go | US$ 0 / US$ 8 | GPT-6 Luna no app desktop do Codex, em liberação gradual; sem Codex Cloud |
| ChatGPT Plus | US$ 20/mês | 15 a 160 mensagens locais do GPT-6.1 Sol a cada 5 horas, 350 a 3.000 no Luna |
| ChatGPT Pro | US$ 100 / US$ 200 / US$ 500 | Sem limite de cinco horas por enquanto; limites semanais podem valer |
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 Code | Codex | |
|---|---|---|
| Sandbox por padrão | Desligado, ligue com /sandbox | Ligado: escrita só no workspace, rede desligada |
| Aprovações | Seis modos de permissão; auto é o padrão no terminal e no VS Code | On request, never ou granular, mais um agente opcional de auto-review |
| Arquivo de instruções | CLAUDE.md, ou AGENTS.md quando não há um | AGENTS.md, em camadas por diretório, até 32 KiB |
| Subagents, skills, hooks, MCP | Os quatro | Os quatro |
| Agente na nuvem | Claude Code na web, do Pro para cima | Codex Cloud, do Plus para cima |
| Editores | VS Code, JetBrains | VS Code e seus forks |
| Headless | claude -p | codex exec, só leitura a menos que você diga |
| GitHub | GitHub Actions; Code Review no Team e no Enterprise | openai/codex-action |
| Modelo padrão | Opus 5.5 com esforço médio | Não documentado; o código-fonte lista o GPT-6.1 Sol primeiro, com esforço baixo |
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
- 01Você conduz enquanto ele trabalha e quer a resposta mais cedo
- 02Você já paga um plano Claude
- 03Você revisa todo diff de qualquer jeito
- 04Você quer suporte a JetBrains
Escolha o Codex se
- 01Você entrega o ticket e volta depois
- 02Você já paga o ChatGPT, ou quer o plano em outras ferramentas
- 03Você quer os checks rodados e verdes sem precisar pedir
- 04Você roda modelos pequenos em tarefas longas
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
- vocêEscrever o AGENTS.md uma vez
As duas ferramentas leem. Sem CLAUDE.md, ou mantenha um que aponte para ele.
- Claude CodeConstruir a mudança
O loop rápido: você conduz enquanto ele trabalha.
- CodexRevisar contra o ticket
O codex exec começa em só leitura: lê o diff contra o ticket e aponta o que falta.
- Gate:CIRodar os checks completos fora de qualquer sandbox
- 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
| Ticket | Tamanho | Diff real | Testes ocultos |
|---|---|---|---|
| O cadastro mantém o idioma do leitor | correção pequena | +34 −10 | 20 |
| Deduplicar um lead por 10 minutos, não 24 horas | correção pequena | +30 −16 | 14 |
| Requisições HEAD no leitor de livros | correção pequena | +16 −9 | 14 |
| Guardar IDs de clique de anúncio no contato | feature média | +106 −30 | 14 |
| Cache de um ano para arquivos com hash | média | +59 −4 | 15 |
| País e UTMs no contato | feature média | +96 −44 | 16 |
| Preview do GTM server-side a partir de cookies | feature média | +62 −2 | 21 |
| Servir o site estático de um livro a partir do bucket | grande, módulo novo | +647 −4 | 14 |
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 --verboseCodex
codex exec -m gpt-6.1-sol -c model_reasoning_effort="high" -s workspace-write --json "$TICKET"
Configuração
| Claude Code | Codex | |
|---|---|---|
| Versão | 2.1.307 (2.1.308 nas últimas 7 rodadas) | CLI 0.163.0 |
| Modelo de preço médio | Sonnet 5.5 | GPT-6.1 Sol |
| Modelo barato | Haiku 5.5 | GPT-6 Luna |
| Esforço | high | high |
| Modo | claude -p, edições aceitas automaticamente | codex exec, escrita no workspace |
| Sandbox | Ligado, shell liberado automaticamente dentro dele | Ligado, rede desligada |
| Rodadas | 2 por ticket no Sonnet, 1 no Haiku | 2 por ticket no GPT-6.1 Sol, 1 no Luna |
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.
Livro gratuito · 177 páginas · PDF + EPUB
Codex ou Claude Code, o agente constrói o que o ticket diz. O livro, em português, traz templates de spec e o kit que entregaram 13 apps em 70 dias.
Receber o livro gratuito

