Instalas Codex CLI. Lo arrancas con ilusión. Le dices «arregla los tests rotos de este repo». Y empieza el calvario:
Codex: I want to run pytest
Allow? (y/n)
Le das a y. Acto seguido:
Codex: I want to modify test_user.py
Allow? (y/n)
Otra vez y. Y otra vez. Y otra vez. Cada fichero que quiere leer, cada comando que quiere ejecutar, cada línea que quiere modificar. Confirmación, confirmación, confirmación. Es como trabajar con un becario que te pregunta si puede usar el baño.
Mientras tanto, Claude Code o Cursor Agent hacen lo mismo sin abrir la boca. ¿Qué pasa?
Pasa que Codex está configurado por defecto como un asistente paranoico. Y tiene sentido — es la decisión segura para un producto nuevo. Pero si sabes lo que haces, ese modo conservador es insoportable para trabajo real.
La buena noticia: se arregla en dos segundos.
El sistema de permisos: approval mode
Codex usa un concepto llamado approval mode que controla cuándo necesita tu permiso. Por defecto, te lo pide para todo:
- Ejecutar comandos
- Escribir archivos
- Modificar código
- Crear ficheros nuevos
- Correr tests
Dicho en cristiano: por defecto, Codex no puede hacer absolutamente nada sin que tú pulses y. Es como un sudo para cada acción individual.
El resultado es que lo que debería ser un agente autónomo se convierte en un diálogo interminable donde tú eres el eslabón más lento de la cadena.
La solución: un flag y a volar
codex --approval-mode never
Eso es todo. Con --approval-mode never, Codex deja de preguntar. Ejecuta comandos directamente, modifica ficheros sin pedir permiso, crea lo que necesite crear. Se comporta como lo que debería ser: un agente que trabaja.
¿Quieres que sea permanente? Dos opciones:
# Opción 1: comando de config
codex config set approval_mode never
# Opción 2: editar el fichero directamente
# ~/.codex/config.toml
approval_mode = "never"
A partir de ahora, cada vez que arranques Codex, trabajará sin interrupciones.
El segundo problema: el sandbox
Pero hay un segundo motivo por el que Codex se queda atascado. Aunque le quites las confirmaciones, el sandbox por defecto puede ser tan restrictivo que el agente no puede ni escribir en el repositorio.
El modo que quieres para desarrollo es workspace-write:
- Lee todo el repositorio
- Modifica ficheros existentes
- Crea ficheros nuevos
- Ejecuta comandos dentro del proyecto
El arranque completo para un Codex que funciona de verdad:
codex --approval-mode never --sandbox workspace-write
Dos flags. Dos. Eso es lo que separa un asistente que te pregunta si puede mover el ratón de un agente que hace su trabajo.
Montando un alias para no repetirte
Si trabajas en terminal (y si estás usando Codex CLI, asumo que sí), crea un alias:
# Fish
alias codex-agent "codex --approval-mode never --sandbox workspace-write"
# Bash/Zsh
alias codex-agent="codex --approval-mode never --sandbox workspace-write"
A partir de ahora:
codex-agent
Y tienes un Codex que se comporta como un agente de verdad.
Modo one-shot: lanza y olvida
Donde esto se pone interesante es cuando le pasas la tarea directamente como argumento:
codex-agent "Run the test suite, identify failing tests, \
fix the code and repeat until everything passes."
Sin sesión interactiva. Sin conversación. Codex analiza el proyecto, ejecuta los tests, identifica los fallos, modifica el código, vuelve a ejecutar, y repite hasta que todo pase. Tú te vas a por un café.
Este patrón — el agentic loop — es exactamente lo que hacen todos los coding agents modernos por dentro. Un bucle que itera hasta que el trabajo está hecho. La diferencia es que Codex, por defecto, te mete en medio del bucle como un paso obligatorio. Con estos dos flags, te quitas de en medio y dejas que el bucle haga lo suyo.
La comparativa incómoda con Claude Code
Aquí viene la parte que a OpenAI no le gusta oír: Claude Code ya viene configurado así de serie.
| Aspecto | Codex CLI (default) | Codex CLI (tuneado) | Claude Code |
|---|---|---|---|
| Permisos | Pide para TODO | No pide nada | Pide solo para operaciones destructivas |
| Sandbox | Restrictivo | workspace-write |
Permisivo con confirmación selectiva |
| Modo CLI | Sí | Sí | Nativo, CLI-first |
| Modo one-shot | codex "prompt" |
codex-agent "prompt" |
claude --print "prompt" |
| Config necesaria | 0 flags | 2 flags | 0 flags |
Claude Code tiene un enfoque más matizado: te deja trabajar sin interrupciones para el 90% de las operaciones, pero te pide confirmación para cosas potencialmente destructivas (borrar ficheros, ejecutar comandos que modifican el sistema). Es el equilibrio que Codex debería tener por defecto.
¿El resultado práctico? Con Claude Code estás trabajando desde el minuto uno. Con Codex, primero tienes que pasar por el ritual de configuración. No es mucho tiempo — son literalmente dos flags — pero es una barrera de entrada innecesaria que frustra a la gente en los primeros cinco minutos.
El prompt que marca la diferencia
Una vez que Codex tiene permisos, la calidad del resultado depende al 100% del prompt. Un prompt vago genera trabajo vago.
# Mal
Fix the tests.
# Bien
Fix the failing tests in this repository.
Work autonomously:
- inspect the repo structure
- run tests
- modify code to fix failures
- rerun tests
- repeat until all tests pass
Do not ask for confirmation.
La diferencia es brutal. El primer prompt puede hacer que Codex arregle un test y pare. El segundo le dice explícitamente que itere hasta que todo funcione. Es la diferencia entre decirle a un fontanero «arregla esto» y darle una lista de lo que está roto.
Y esto aplica igual a Claude Code, a Cursor, a cualquier agente. El approval mode te quita las interrupciones. El prompt determina si el trabajo que hace sin interrupciones es bueno o malo.
Cuándo NO quitar los permisos
Sería irresponsable decirte «pon --approval-mode never siempre» sin el aviso:
No lo hagas en repos de producción sin revisión posterior. Un agente autónomo que commitea directamente a main sin que nadie revise es una bomba de relojería. El modo autónomo es perfecto para:
- Ramas de desarrollo donde tú revisas el resultado
- Sesiones interactivas donde estás mirando qué hace
- Tareas acotadas: «arregla los tests», «formatea este módulo», «actualiza las dependencias»
Para cosas que tocan producción, el approval mode selectivo de Claude Code es más sensato: trabaja libre, pero pide permiso antes de apretar el botón nuclear.
El resumen en 30 segundos
Si Codex CLI te está volviendo loco con confirmaciones:
# Arranque rápido
codex --approval-mode never --sandbox workspace-write
# Permanente
codex config set approval_mode never
# ~/.codex/config.toml
approval_mode = "never"
Dos parámetros transforman un asistente nervioso en un agente autónomo. La configuración por defecto de Codex es la más segura, no la más productiva. Ahora ya sabes dónde está el interruptor.
Read this article in English.



