Modo headless, estilos de salida y tareas en segundo plano
El modo headless ejecuta Claude Code sin interfaz interactiva con -p, --output-format determina si la salida sigue siendo texto o se convierte en un objeto JSON utilizable por un script, con el costo total incluido, y run_in_background deja que un comando largo continúe sin bloquear la conversación.
El modo headless ejecuta Claude Code sin interfaz interactiva, en un solo comando que devuelve su resultado y se detiene. El indicador -p (o --print) activa este modo, con un prompt dado como argumento.
claude -p "Resume los archivos modificados en este repositorio" --output-format json
Tres formatos de salida para tres usos
El parámetro --output-format acepta tres valores. text, el valor predeterminado, devuelve una respuesta en lenguaje natural destinada a un humano. json devuelve un único objeto estructurado, con el resultado, el identificador de sesión y el costo total en dólares junto con un desglose por modelo, una forma que un script puede leer sin analizar texto libre. stream-json devuelve la misma información en JSON Lines, un objeto por línea, útil cuando un programa quiere reaccionar antes de que termine por completo la ejecución. Un indicador --bare se salta el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins, servidores MCP, memoria automática y archivos CLAUDE.md al arrancar, lo que acelera el inicio. La documentación oficial lo recomienda para las llamadas con script y señala que podría convertirse en el valor predeterminado de -p en una versión futura. Esta ganancia de velocidad tiene una contrapartida que nada indica en pantalla: el modo bare nunca lee los identificadores OAuth ni el llavero del sistema, por lo que no se apoya en la conexión por suscripción, y un script que lo use debe fijar la variable ANTHROPIC_API_KEY en su entorno para autenticarse ante la API de Anthropic.
Dejar que un comando largo se ejecute sin bloquear
Un comando largo lanzado por la herramienta Bash de Claude Code puede pedir run_in_background: true en lugar de esperar a que termine. La herramienta devuelve entonces de inmediato un identificador de tarea, el comando continúa en segundo plano, y su salida se vuelve a leer después con la herramienta Read. El atajo Ctrl+B mientras un comando se ejecuta hace el mismo cambio a mano, y el comando /tasks enumera y detiene las tareas en curso.
Este cambio también ocurre solo: un comando que llega a su plazo de expiración sin haber terminado pasa automáticamente a tarea en segundo plano en lugar de cortarse en seco, salvo para tres familias de comandos que siguen siendo bloqueantes hasta el final, los que empiezan por sleep, los que contienen git, y los comandos demasiado compuestos para ser analizados por el mecanismo de seguridad. El identificador de sesión que --output-format json devuelve es el mismo que retoma cada gesto rápido de la terminal con --resume.
Lo que cambia el modo headless en octubre de 2026
Desde octubre de 2026, claude -p y el Agent SDK sin modo de permiso configurado arrancan en modo default: una llamada que necesita aprobación se rechaza allí, salvo que una regla de autorización, un hook o la opción --permission-prompt-tool la conceda. Un script que modifica archivos debe, pues, pasar --permission-mode o llevar una regla. Además, el límite de duración de los comandos en segundo plano solo se aplica ya a las sesiones sin supervisión (-p, SDK, CI, nube): una sesión de terminal, de escritorio o de VS Code ya no tiene límite.
De un comando headless a una salida utilizable por un script
Un desarrollador lanza claude -p con --output-format json en un pipeline de despliegue, y el script del pipeline recupera el campo total_cost_usd del resultado para añadirlo al panel de costos.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: Este lanzamiento establece que el script puede leer un costo total sin analizar texto libre, ya que el formato json lo pone disponible como un campo estructurado.
Lo que esto no establece: No establece que ese costo corresponda al conjunto de los gastos del pipeline de despliegue, ya que otras etapas del pipeline pueden generar costos que no tienen nada que ver con esta llamada a Claude Code.
Los tres calibrados falsos más frecuentes
- Demasiado amplio El formato json ahora expone todos los costos de cualquier herramienta usada en el pipeline de despliegue, no solo el de esta llamada a Claude Code.
- Demasiado estrecho Este lanzamiento no prueba nada en absoluto, ya que solo se observó una llamada en un solo pipeline.
- Fuera de tema Este lanzamiento muestra que el pipeline de despliegue ahora termina más rápido que antes de añadir esta llamada a Claude Code.
- Un script con claude -p sin modo configurado arranca en default y ve rechazada toda llamada que necesite aprobación: pasa --permission-mode o una regla.
- --output-format json devuelve un objeto único que contiene el resultado, el identificador de sesión y el costo total en dólares con su desglose por modelo.
- --bare se salta el descubrimiento automático de hooks, skills y archivos de contexto al arrancar, una ganancia de velocidad recomendada para las llamadas con script, pero nunca lee los identificadores OAuth ni el llavero, por lo que ANTHROPIC_API_KEY se vuelve necesaria.
- run_in_background devuelve inmediatamente un identificador de tarea y deja que un comando largo continúe mientras la conversación sigue su curso.
- Un comando que llega a su plazo de expiración cambia automáticamente a tarea en segundo plano, salvo que empiece por sleep, contenga git, o sea demasiado compuesto para ser analizado.
Lanza desde tu terminal claude -p "una palabra al azar" --output-format json en una carpeta que no contenga ningún dato sensible, y localiza en la salida los campos session_id y total_cost_usd.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Claude Code, modo headless, formatos de salida e indicador --bare consultée le 2026-09-02
- Claude Code, referencia de herramientas, run_in_background y cambio automático a tarea en segundo plano consultée le 2026-09-02
- Claude Code, modos de permiso: claude -p arranca en default consultée le 2026-10-24
- Registro de cambios de Claude Code: límite de comandos en segundo plano en sesiones sin supervisión consultée le 2026-10-24