Codex vs Claude Code: 48 ejecuciones en tickets reales, y el ticket decidió
Corrí Codex y Claude Code en 8 tickets reales de un repo en producción, 48 ejecuciones al mismo precio por token, evaluadas con los tests ocultos de los commits reales. Los dos escriben código que funciona a partir de un ticket claro. Se diferencian en velocidad, cuidado y factura, y donde los dos fallaron, mi ticket no decía nada.
Los dos agentes escribieron código que funciona para cada ticket que decía lo que quería. Donde fallaron, mi ticket no decía nada.
Elige Claude Code si te sientas con el agente y lo vas guiando. Elige Codex si le pasas el ticket y te vas. Los dos escriben código que funciona a partir de un ticket claro: les di 8 tickets reales del código de este sitio, 48 ejecuciones en total, y revisé cada resultado con tests que nunca vieron.
Claude Code es mi herramienta de todos los días. La fintech cripto de 13 apps que entregué solo en 70 días corrió sobre él. A Codex lo conozco por esta prueba: 24 ejecuciones headless en los mismos tickets, más su documentación y su código fuente. Lee el lado de Codex con eso en mente.
Libro gratis · en inglés · 169 páginas
Codex y Claude Code resolvieron cada ticket que dejaba claro el comportamiento. El libro está en inglés; sus plantillas de spec te ayudan a dejarlo claro en los tuyos.
Recibir el libro gratisLos dos escriben código que funciona a partir de un ticket claro
En un ticket que dice lo que quiere, todos los modelos que corrí escribieron código que pasó: Sonnet 5.5 y Haiku 5.5 en Claude Code, GPT-6.1 Sol y GPT-6 Luna en Codex, incluidos los baratos. Para el código en sí no estás eligiendo un modelo. Estás eligiendo velocidad, cuidado y un plan.
Regresé el código de este sitio a justo antes de 8 cambios que había puesto en producción, le di el ticket a cada agente y califiqué su código con los tests de mi cambio real, que nunca vio. Cada herramienta corrió un modelo de precio medio y uno barato, emparejados por precio por token. El método completo está al final. Siete tickets, las dos herramientas, todos los modelos, todas las ejecuciones: resueltos. Juega con el corte que te importa:
48 ejecuciones, desglosadas
Cada ejecución es un agente, un ticket, un intento. Resuelto significa que pasaron todos los tests ocultos del commit real.
Resueltas · mayor es mejor
- Claude Code22 de 24
- Codex21 de 24
Por tarea (✓ resuelta, ✗ no)
| Tamaño de la tarea | Claude Code | Codex |
|---|---|---|
| El registro mantiene el idiomapequeña | 3 de 3 | 3 de 3 |
| Deduplicar por 10 minutospequeña | 3 de 3 | 3 de 3 |
| HEAD en el lectorpequeña | 3 de 3 | 3 de 3 |
| IDs de clic de anunciosmediana | 3 de 3 | 3 de 3 |
| Cache de un añomediana | 3 de 3 | 3 de 3 |
| País y UTMsmediana | 3 de 3 | 3 de 3 |
| Header de preview de GTMmediana | 3 de 3 | 3 de 3 |
| Sitio del libro desde el bucketgrande | 1 de 3 | 0 de 3 |
Un leaderboard público, el Coding Agent Index de Artificial Analysis, pone adelante a Codex con GPT-6.1 Sol, 60 a 55, a US$ 0,89 contra US$ 1,24 por tarea. Sus tareas son más difíciles y las escriben desconocidos. Las mías son tickets de un repo real, escritos como yo los escribo. Si tus tickets se parecen a los míos, confía en el empate. Si les das a los agentes problemas que nadie especificó, confía en su ranking.
Fallan donde tu ticket no dice nada
Donde el ticket no dice nada, decide el agente, y su elección es sensata pero no es la tuya. Diez de los catorce fallos en mi ticket grande vinieron de un valor que nunca escribí.
El ticket grande pedía un módulo entero: servir el sitio estático de un libro desde un bucket privado bajo /read, con cache, analítica, paths seguros y un noindex en cada respuesta. Entregué la sección del README que salió con el módulo real, 464 palabras. Aquí está junto a dos tickets para la misma ruta que pasaron en todas las ejecuciones:
Dos formas de escribir el mismo ticket
| Qué fija | Ticket claro, 6 de 6 pasaron | Ticket grande, 1 de 6 | Lo que adivinaron los agentes |
|---|---|---|---|
| El 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=” | Sus propios headers de assets, en 5 de 6 ejecuciones |
| El body | “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” | Un 404 que dice Not found, en 2 de 6 ejecuciones |
| 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.” | Una carpeta pagefind/ que no sirve su index.html, en 3 de 6 ejecuciones |
Escribe tu ticket como el claro. Cada valor que dejas fuera, el agente lo elige por ti. Y termina cada ticket con las cuatro líneas que le daría a un 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.
Aquí están los catorce fallos, uno por uno:
Por qué falló el ticket grande
| Lo que quería el test | Claude Code | Codex | Por qué |
|---|---|---|---|
| Una carpeta como pagefind/ sirve su index.html | 1 | 2 | Mi ticket: nunca lo dijo |
| Headers exactos de assets: immutable, nosniff, los tipos de wasm y CSS | 2 | 3 | Mi ticket: dijo un año, nunca el header |
| Una página que no existe responde con el body vacío | 0 | 2 | Mi ticket: dijo solo un 404 simple |
| El contexto de la página escrito como texto JSON | 2 | 0 | Mi test: buscaba texto exacto, y el código estaba bien |
| No contar mis propias visitas en la analítica | 0 | 2 | El agente: el ticket lo decía |
Diez de los catorce son míos. Dos vienen de una ejecución y de un test que leía el código como texto. Dos fallos fueron del propio agente: Codex omitió una regla que el ticket sí decía, así que mis propias visitas habrían terminado en la analítica. Un check de mi propio test también estaba mal; lo corregí y califiqué el ticket grande contra el test corregido, y Cómo lo probé tiene los detalles.
Ninguna herramienta lee la mente. Las dos construyen lo que dice el ticket, y la distancia entre “lo que escribí” y “lo que quise decir” es donde falla un ticket grande. Escribo specs justamente por eso, y este benchmark es la prueba más limpia que tengo: en los siete tickets que fijaban el comportamiento, pasaron 42 de 42 ejecuciones. Esos siete se escribieron para cubrir sus tests, así que ese número es en parte por diseño. El ticket grande es el honesto: escrito por una persona con prisa, con huecos que nadie notó hasta que dos agentes cayeron en ellos.
Reescribe el ticket, no lo vuelvas a correr
Cuando un agente falla tu ticket, reescribe el ticket antes de correrlo otra vez. En mis ejecuciones, un fallo se pegaba al ticket, no a la suerte: siete tickets pasaron todas las veces, y el grande pasó una vez de seis.
El consejo habitual es volver a correr un agente inestable y quedarte con el mejor resultado. Esa cuenta supone que cada ejecución es una moneda lanzada de nuevo: con el 90% de mis ejecuciones aprobadas, dos intentos resolverían el 99% de las veces. Mueve los tickets difíciles y mira cómo se encoge esa promesa:
pass@k vs pass^k
Los demás tickets pasan en 100% de las ejecuciones.
Tasa promedio por ejecución:
Al menos una pasa (pass@k)
Si cada ejecución fuera lanzar una moneda a la tasa promedio
En estos tickets
Todas pasan (pass^k)
En estos tickets
El reintento sí cambió un veredicto: las dos ejecuciones de precio medio de Claude Code en el ticket grande se dividieron, una pasó y una falló, y esa que pasó es la diferencia entre 22 y 21.
Libro gratis · en inglés · 169 páginas
En mi ticket más grande, Codex y Claude Code fallaron en decisiones que la spec nunca escribió. Las plantillas del libro te las piden por escrito antes de empezar.
Claude Code volvió el doble de rápido
En Claude Code, un ticket típico volvió en menos de dos minutos. En Codex, más cerca de cuatro. Si esperas en la terminal mientras trabaja, lo vas a sentir en cada ticket. Con los modelos baratos la diferencia crece a 2,3 minutos contra 7,6, tiempo suficiente para ir a hacer otra cosa.
A dónde se fue el tiempo
- Ejecución mediana, GPT-6.1 Sol vs Sonnet 5.5÷ 2,2
- Codex: 3,7 minClaude Code: 1,7 min
- Esperando al modelo, precio medio÷ 3,1
- Codex: 2,8 minClaude Code: 0,9 min
- Corriendo comandos, precio mediocasi igual
- Codex: 35 sClaude Code: 38 s
- Ejecución mediana, GPT-6 Luna vs Haiku 5.5÷ 3,2
- Codex: 7,6 minClaude Code: 2,3 min
Las dos herramientas registran un timestamp en cada evento, así que dividí cada ejecución en tiempo corriendo comandos y tiempo esperando al modelo. Con los modelos de precio medio, las dos pasaron el mismo tiempo en comandos; toda la diferencia es el modelo. Codex además vuelve al modelo más seguido, unas 18 veces por ticket contra unas 14, y cada vez que vuelve, esperas otra vez. Con los modelos baratos, Luna también pasó el triple de tiempo en comandos, 163 segundos contra 50.
Las llamadas de Codex al modelo pasaron por un gateway, y Artificial Analysis mide a los dos a menos de un minuto de distancia, 12,3 minutos contra 13,3 en sus tareas, así que no bases tu elección en mi reloj. En mi máquina, en mis tickets, Claude Code respondió mientras yo todavía habría estado esperando.
Codex limpia. Claude Code reporta.
Ninguna herramienta se salió del ticket ni dijo listo con un check en rojo. La diferencia aparece cuando algo que no rompió le estorba: Codex lo arregla y te avisa, Claude Code te avisa y lo deja. Si igual revisas cada diff, el cuidado extra de Codex te cuesta dos minutos por ticket. Si no, es la razón para elegir Codex.
Reddit tiene una lista de quejas sobre estos dos. Claude Code edita archivos que nadie pidió. Dice “listo” cuando no lo está. Codex se queda en el alcance. Hice el conteo.
Las quejas, contadas en 24 ejecuciones cada una
| Claude Code | Codex | |
|---|---|---|
| Cambió código que el ticket no pedía | 0 | 0 |
| Dijo listo con los checks en rojo | 0 | 0 |
| Agregó o actualizó tests | 24 | 24 |
| Actualizó la documentación | 24 | 24 |
| Ediciones de docs bloqueadas en .claude/, sin nadie que dijera que sí | 8 | 0 |
| Arregló un check fallido que no causó (de 9) | 5 | 9 |
| Dejó los checks del repo pasando | 20 | 24 |
| Mediana de líneas de test escritas, modelos de precio medio | 45 | 98 |
| Mediana de comandos de shell, modelos de precio medio | 13 | 23 |
Tres de mis ocho puntos de partida ya fallaban los checks antes de que el agente tocara algo: un archivo de reglas bajo .claude/ que rompía el formateador, en una parte del repo que el ticket nunca mencionó. Codex lo arregló en las nueve ejecuciones y lo dijo, lo que hace de Codex el que editó un archivo que nadie pidió. Claude Code lo arregló en cinco, siempre corriendo el formateador desde la shell, y en las otras cuatro lo dejó en paz a propósito: fuera de esta tarea, dijo, y los checks fallarían en un archivo que no había tocado.
Esa carpeta le costó a Claude Code más que el formateador. Pregunta antes de editar cualquier cosa bajo .claude/, y en una ejecución headless no hay nadie para decir que sí. En ocho ejecuciones, la documentación que quería actualizar vivía ahí, y en seis de ellas mi commit real había actualizado ese mismo archivo. Codex no perdió ninguna. En una sesión en vivo, esa carpeta te cuesta una tecla. En una ejecución que nadie mira, te cuesta la edición.
Con los modelos de precio medio, Codex escribió el doble de líneas de test; con los baratos, empataron.
La factura empata hasta que bajas al modelo barato
Esta sección es tu factura solo si pagas por token, con una API key o en CI. Si tienes un plan, salta a la siguiente. Por token, los modelos de precio medio empatan en cerca de US$ 0,43 por ticket resuelto. La trampa es Haiku en Claude Code en una tarea larga: pasados los 100K tokens de contexto cobra cinco veces más, y mi única ejecución larga con Haiku costó US$ 1,01 donde Codex con Luna costó US$ 0,10.
El empate tiene historia. Las facturas fueron US$ 6,51 para Claude Code y US$ 6,12 para Codex en 16 ejecuciones de precio medio cada una, y Claude Code empata por ticket resuelto porque resolvió uno más. Fue más barato en cinco de los siete tickets claros y más caro en el grande.
Debajo está el cache. Un agente reenvía toda la conversación en cada turno. Lo que ya envió se lee del prompt cache a un veinteavo del precio de input; la parte nueva primero hay que guardarla, y guardar cuesta más que leer. En mis ejecuciones de precio medio, el 93% de los tokens de input fueron lecturas, y las lecturas cuestan lo mismo en los dos. Guardar no: Anthropic cobra sus escrituras de cache de una hora a 2x el precio de input, OpenAI sus escrituras de cache de 30 minutos a 1,25x. Las escrituras fueron la línea más grande en las dos facturas, US$ 3,49 de los US$ 6,51 de Claude Code y US$ 3,10 de los US$ 6,12 de Codex. Las ejecuciones de Claude Code fueron más cortas, cerca de un tercio menos de tokens leídos y escritos por ejecución, y eso es lo que lo emparejó.
La trampa de Haiku es una línea de precio. Haiku 5.5 cuesta US$ 0,10 por millón de tokens de input hasta 100K tokens de contexto y US$ 0,50 después, y Claude Code le da a Haiku una ventana de un millón de tokens, así que nada impide que una tarea larga cruce esa línea. En el ticket grande, 64 de las 69 llamadas de Claude Code con Haiku llevaron más de 100K tokens, hasta 228K. Codex corre Luna con una ventana de 258.400 tokens, debajo de la línea de 272K donde sube el precio de OpenAI. Esa sola ejecución explica casi todo por qué los modelos baratos marcan US$ 0,19 por ticket resuelto en Claude Code y US$ 0,05 en Codex.
Mismo precio de lista, otra factura
A
- Lecturas de caché
- 0,06 US$
- Escrituras en caché
- 0,17 US$
- Salida
- 0,07 US$
Con la caché
B
- Lecturas de caché
- 0,10 US$
- Escrituras en caché
- 0,18 US$
- Salida
- 0,07 US$
Con la caché
GPT-6.1 Sol, cache de 30 minutos cuesta 15 % más que Sonnet 5.5, cache de 1 hora.
A dónde van los tokens, y por qué la mayoría son el agente releyendo su propio pasado, es el tema de dónde muere la mayoría de los tokens de tu agente.
Quédate con el plan que ya pagas
Resuelven los mismos tickets, así que cambiar te da velocidad o cuidado, no mejor código. Quédate con el plan de US$ 20 que tienes, salvo que quieras que funcione en otras herramientas: un plan de ChatGPT funciona, uno de Claude no. En ChatGPT Plus tienes muchos más mensajes de Luna que de Sol, y en mis tickets claros Luna pasó en todas las ejecuciones. Solo tardó 7,6 minutos por ticket.
Planes que incluyen cada agente
| Plan | Precio | Para programar |
|---|---|---|
| Claude Pro | US$ 20/mes | Claude Code incluido; un límite por sesión de 5 horas más un límite semanal, compartidos con las apps de Claude |
| Claude Max | US$ 100 / US$ 200 | 5x o 20x el uso de Pro |
| ChatGPT Free y Go | US$ 0 / US$ 8 | GPT-6 Luna en la app de escritorio de Codex, en despliegue; sin Codex Cloud |
| ChatGPT Plus | US$ 20/mes | 15 a 160 mensajes locales de GPT-6.1 Sol cada 5 horas, 350 a 3.000 con Luna |
| ChatGPT Pro | US$ 100 / US$ 200 / US$ 500 | Sin límite de cinco horas por ahora; puede haber límites semanales |
Ese criterio va a sobrevivir a todos los números de este artículo. Un plan de Claude cubre los productos propios de Anthropic, Claude Code incluido, y Anthropic prohíbe que herramientas de terceros ofrezcan login con Claude. Un plan de ChatGPT funciona en Codex y, desde el 29 de septiembre de 2026, también en herramientas de terceros participantes. Recorrí ese camino en OpenCode vs Claude Code, y la cuenta de un plan fijo contra los precios de API está en ¿vale la pena Claude Max?. Las dos páginas de precios: claude.com/pricing y los precios de Codex de OpenAI.
Las mismas features, defaults opuestos
Cualquier feature que busques está en los dos. Lo que cambia es el default: Codex encierra al agente hasta que lo sueltas, y Claude Code lo deja correr hasta que lo encierras. De fábrica, Claude Code además corre Opus 5.5, que no probé; Sonnet 5.5 alcanzó para todos los tickets claros.
Lado a lado
| Claude Code | Codex | |
|---|---|---|
| Sandbox por defecto | Apagado, actívalo con /sandbox | Encendido: escritura solo en el workspace, red apagada |
| Aprobaciones | Seis modos de permiso; auto es el default en la terminal y en VS Code | On request, never o granular, más un agente opcional de auto-review |
| Archivo de instrucciones | CLAUDE.md, o AGENTS.md cuando no hay uno | AGENTS.md, en capas por directorio, hasta 32 KiB |
| Subagents, skills, hooks, MCP | Los cuatro | Los cuatro |
| Agente en la nube | Claude Code on the web, desde Pro | Codex Cloud, desde Plus |
| Editores | VS Code, JetBrains | VS Code y sus forks |
| Headless | claude -p | codex exec, solo lectura salvo que le digas |
| GitHub | GitHub Actions; Code Review en Team y Enterprise | openai/codex-action |
| Modelo por defecto | Opus 5.5 con esfuerzo medio | No documentado; el código fuente pone GPT-6.1 Sol primero, con esfuerzo bajo |
Ningún default corrió en mi prueba: les di a los dos un sandbox y esfuerzo high, que es cuánto piensa el modelo antes de cada paso. De fábrica, Codex piensa menos, con esfuerzo bajo, y eso tampoco es lo que medí.
Guía con Claude Code, delega a Codex
Los dos resolvieron los mismos tickets, así que elige según el hábito que ya tienes.
Elige Claude Code si
- 01Guías al agente mientras trabaja y quieres la respuesta antes
- 02Ya pagas un plan de Claude
- 03Igual revisas cada diff tú mismo
- 04Quieres soporte para JetBrains
Elige Codex si
- 01Le pasas el ticket y vuelves más tarde
- 02Ya pagas ChatGPT, o quieres usar el plan en otras herramientas
- 03Quieres que corra los checks y los mantenga en verde sin pedírselo
- 04Corres modelos pequeños en tareas largas
¿Codex o Claude Code?
Cuatro preguntas sobre cómo trabajas. La respuesta viene con la razón y con qué vigilar.
¿Cómo trabajas con el agente?
El segundo plan te compra un revisor
Si ya pagas uno, el segundo vale la pena como revisor, no como mejor escritor. Deja que Claude Code construya mientras lo guías, y después haz que Codex lea el diff contra el ticket antes del merge.
Los dos leen el mismo AGENTS.md, así que un solo archivo de instrucciones guía a los dos, y cuesta un comando extra. No corrí este pipeline en un equipo; es lo que sugieren mis números. El harness alrededor de los agentes, los checks y el review, hace más por la calidad que el agente que escribe el código.
Dos agentes, un ticket
Entrada
Un ticket que define el comportamiento y la interfaz
- túEscribe AGENTS.md una vez
Las dos herramientas lo leen. Sin CLAUDE.md, o deja uno que apunte a él.
- Claude CodeConstruye el cambio
El loop rápido: lo guías mientras trabaja.
- CodexRevisa contra el ticket
codex exec arranca en solo lectura: lee el diff contra el ticket y reporta lo que falta.
- Gate:CICorre los checks completos fuera de cualquier sandbox
- Gate:túAprueba el diff
Salida
Un cambio en el que coinciden dos agentes y los checks
Cómo lo probé, para los escépticos
Todo lo anterior se apoya en estos detalles. Si quieres repetirlo en tu propio repo, esta es la receta.
La prueba
- tickets reales
- 8
- del Worker de este sitio
- ejecuciones
- 48
- 24 por herramienta
- total a precios de API
- US$ 14,33
- las 48 ejecuciones
- 'listo' con un check en rojo
- 0
- en ninguna herramienta
Tomé 8 commits reales del Cloudflare Worker de este sitio (TypeScript: captura de leads, descargas, un lector de libros), desde un fix de 25 líneas hasta un módulo de 647. Para cada uno: un git worktree nuevo en el commit padre, que es una copia limpia del repo tal como estaba justo antes del cambio, un ticket, y el agente solo con él. Cuando el agente para, entra el archivo de tests del commit real y corre. La misma idea de SWE-bench, en mi propio código. Validé los 8 primero: cada test oculto falla en el commit padre y pasa con el fix real. De los 128 tests ocultos, 103 ya pasaban antes del cambio; verifican que el agente no rompió lo que funcionaba. Los otros 25 son el ticket.
Los tickets son de dos tipos, a propósito. Mi agente escribió siete a partir de los commits reales: el comportamiento y la interfaz que verifica el test, nunca el código. El octavo, el grande, es la sección del README que salió con el módulo real, tal como se escribió en su momento, más la interfaz que importa el test. Todos los tickets terminaban con las cuatro líneas de antes.
Los 8 tickets
| Ticket | Tamaño | Diff real | Tests ocultos |
|---|---|---|---|
| El registro mantiene el idioma del lector | fix pequeño | +34 −10 | 20 |
| Deduplicar un lead por 10 minutos, no 24 horas | fix pequeño | +30 −16 | 14 |
| Peticiones HEAD en el lector del libro | fix pequeño | +16 −9 | 14 |
| Guardar los IDs de clic de anuncios en el contacto | feature mediana | +106 −30 | 14 |
| Cache de un año para archivos con hash | mediano | +59 −4 | 15 |
| País y UTMs en el contacto | feature mediana | +96 −44 | 16 |
| Preview de GTM server-side a partir de cookies | feature mediana | +62 −2 | 21 |
| Servir el sitio estático de un libro desde el bucket | grande, módulo nuevo | +647 −4 | 14 |
El repo tiene un AGENTS.md y ningún CLAUDE.md, así que las dos herramientas leen las mismas instrucciones. Codex lee AGENTS.md de forma nativa. Claude Code lo lee cuando no hay CLAUDE.md.
Los modelos están emparejados por precio, porque el precio es como eliges de verdad. Sonnet 5.5 y GPT-6.1 Sol cuestan de lista US$ 2 por millón de tokens de input, US$ 0,10 en cache y US$ 10 de output (OpenAI, Anthropic), y GPT-6.1 Sol es el modelo que recomienda Codex. Haiku 5.5 y GPT-6 Luna cuestan US$ 0,10, US$ 0,01 y US$ 0,50. El esfuerzo es high en los dos. Las dos herramientas corrieron headless y en sandbox, cada ticket en las dos al mismo tiempo en la misma máquina:
Los dos comandos, por ejecución
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"
Configuración
| Claude Code | Codex | |
|---|---|---|
| Versión | 2.1.307 (2.1.308 en las últimas 7 ejecuciones) | CLI 0.163.0 |
| Modelo de precio medio | Sonnet 5.5 | GPT-6.1 Sol |
| Modelo barato | Haiku 5.5 | GPT-6 Luna |
| Esfuerzo | high | high |
| Modo | claude -p, ediciones aceptadas automáticamente | codex exec, escritura en el workspace |
| Sandbox | Encendido, shell permitida automáticamente dentro de él | Encendido, red apagada |
| Ejecuciones | 2 por ticket con Sonnet, 1 con Haiku | 2 por ticket con GPT-6.1 Sol, 1 con Luna |
Los dos sandboxes rompieron mis checks, de formas distintas. El sandbox de Codex apaga la red, y pnpm intentó descargar la versión que fija el repo. En 21 de 24 ejecuciones Codex igual logró correr el propio pnpm verify, casi siempre apagando el cambio de versión de pnpm; en las otras 3 corrió los pasos uno por uno. En el sandbox de Claude Code, pnpm no pudo bloquear su store. Claude Code pidió correr fuera del sandbox, el modo headless lo rechazó, y corrió cada paso directo desde node_modules/.bin. En una sesión en vivo apruebas cada uno de estos pedidos con una tecla. Por eso los checks de cada ejecución se volvieron a correr fuera del sandbox.
El costo es el precio de lista de la API, a partir de los conteos de tokens de cada ejecución. Claude Code reporta su propio costo a precio de lista por ejecución. Para Codex, calculé sus conteos de tokens con la lista de OpenAI, escrituras de cache incluidas, a la tarifa de 30 minutos: Codex 0.163.0 es anterior a la opción de cache de 12 horas de OpenAI.
Uno de mis tests estaba mal
En el ticket grande, todas las ejecuciones fallaron la misma aserción: una petición HEAD tenía que llegar al bucket como HEAD. Esa aserción era mi bug. El Worker lee el bucket a través de una URL prefirmada, y la firma cubre el método HTTP, como una entrada sellada para una sola puerta: firmada para GET, el bucket rechaza un HEAD. Lo corregí un commit después, y ese fix es el tercer ticket pequeño de este benchmark. Las seis ejecuciones habían leído “the Worker signs a GET” en el ticket y mantuvieron el GET. Ellas tenían razón y mi test estaba mal.
Así que califico el ticket grande contra su test tal como quedó después de mi corrección, y muestro los dos. Con el test original ninguna ejecución pasa, los totales quedan 21 a 21, y el costo por ticket resuelto de Claude Code con el modelo de precio medio pasa de US$ 0,43 a US$ 0,46. Con el corregido, Claude Code con Sonnet 5.5 pasa una vez de dos ejecuciones, y de ahí sale su 22. Una ejecución de dos no es una victoria por la que apostaría. El explorador del principio alterna entre los dos.
Codex vs Claude Code, respuestas rápidas
¿Es Codex mejor que Claude Code?
No en mis tickets. En 8 tickets reales al mismo precio por token, Claude Code resolvió 22 de 24 ejecuciones y Codex 21 de 24, y el costo por ticket resuelto empató con los modelos de precio medio. Codex fue más minucioso: arregló lo que le estorbaba, escribió el doble de líneas de test con el modelo de precio medio y dejó los checks en verde en todas las ejecuciones. Claude Code terminó en menos de la mitad del tiempo. El índice público de Artificial Analysis pone adelante a Codex, 60 a 55, en tareas públicas más difíciles.
¿Qué modelo escribe mejor código, Codex o Claude Code?
En un ticket claro, ninguno de los cuatro que corrí. Sonnet 5.5 y Haiku 5.5 en Claude Code, GPT-6.1 Sol y GPT-6 Luna en Codex: todas las ejecuciones pasaron en mis siete tickets claros. Todos los fallos fueron en un ticket grande que dejó valores sin decir, y los agentes los llenaron con sus propios defaults.
¿Cuál es más barato, Codex o Claude Code?
Los dos planes empiezan en US$ 20 al mes. A precios de API con modelos del mismo precio de lista, el costo por ticket resuelto empató en mi prueba: US$ 0,43 para Claude Code con Sonnet 5.5 y US$ 0,44 para Codex con GPT-6.1 Sol. Los modelos pequeños son distintos: Haiku 5.5 cobra 5x por token pasados los 100K tokens de contexto, así que en una tarea larga Codex con GPT-6 Luna costó una décima parte.
¿Cuál es más rápido, Codex o Claude Code?
Claude Code, en mis ejecuciones: una mediana de 1,7 minutos por ticket con el modelo de precio medio contra 3,7 de Codex. Los dos pasaron el mismo tiempo corriendo comandos; la diferencia fue la espera del modelo, y las llamadas de Codex pasaron por un gateway. Artificial Analysis mide a los dos a menos de un minuto de distancia.
¿Claude Code edita archivos que no pediste?
No en mis 48 ejecuciones. Ninguna herramienta cambió código fuera de lo que pedía el ticket, y ninguna dijo listo con los checks en rojo. El único archivo que nadie pidió, un archivo de reglas que ya fallaba en el formateador, lo arregló Codex en las nueve ejecuciones que lo encontraron y Claude Code en cinco.
¿Codex y Claude Code pueden compartir un archivo de instrucciones?
Sí. Codex lee AGENTS.md de forma nativa, en capas por directorio. Claude Code lee AGENTS.md cuando el repo no tiene CLAUDE.md. En mi prueba, las dos herramientas leyeron el mismo AGENTS.md.
¿Codex CLI es gratis?
El Codex CLI es open source; los modelos no. Inicia sesión con un plan de ChatGPT o usa una API key. Los planes Free y Go reciben GPT-6 Luna en la app de escritorio de Codex a medida que se despliega, sin Codex Cloud. Plus, a US$ 20 al mes, es el primer plan con GPT-6.1 Sol.
Libro gratis · en inglés · 169 páginas
Con Codex o Claude Code, el agente construye lo que dice tu ticket. Llévate las plantillas de spec probadas en una fintech de 13 apps; el libro está en inglés.
Recibir el libro gratis

