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. Combinar los dos gestos, modo headless para la entrada y la salida, tarea en segundo plano para la duración, hace que un script sea capaz de pilotar Claude Code sin esperar nunca bloqueado frente a una terminal. El identificador de sesión que --output-format json devuelve explícitamente es el mismo que retoma cada gesto rápido de la terminal con --resume.
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.
Escriba 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.
- El indicador -p activa el modo headless, sin interfaz interactiva, para un uso con script de Claude Code.
- --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.
Lance desde su terminal claude -p "una palabra al azar" --output-format json en una carpeta que no contenga ningún dato sensible, y localice 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