Programación y agentes de IA

[Claude Code #14] claude -p sin interfaz: integrar la IA en tuberías

El modo sin interfaz de claude -p permite usar Claude Code como una herramienta Unix. Este artículo resume cómo usarlo en scripts con tuberías stdin, --output-format json y jq, permisos de --allowedTools y el modo --bare en CI.

4 min de lectura
Imagen de portada de [Claude Code #14] claude -p sin interfaz: integrar la IA en tuberías

Si solo usas Claude Code desde la ventana de chat, estás aprovechando la mitad. Al integrarlo en una canalización del terminal, funciona como herramientas Unix como grep o jq.

La clave es la opción -p (o --print). Procesa un único prompt sin interfaz interactiva, imprime solo el resultado y termina.

claude -p "auth Explica brevemente qué hace este módulo"

Si Claude Code, parte 13 trataba lo que ocurre dentro de una sesión, esta vez veremos cómo usarlo fuera de ella.

Introducir datos por tubería y recibirlos en un archivo

Con Documentación oficial, el modo -p lee la entrada estándar. Introduce los datos por tubería y redirige el resultado, igual que con cualquier otra herramienta CLI.

cat build-error.txt | claude -p 'Explica de forma concisa la causa raíz de este error de compilación' > output.txt

Según Documentación oficial, una ejecución correcta termina con el código 0 y una fallida con un código distinto de 0, lo que permite crear ramas en los scripts. La entrada por tubería admite hasta 10 MB; para datos mayores, indica la ruta del archivo en el prompt.

Al añadirlo a los scripts de package.json puedes crear un linter específico del proyecto. Por ejemplo, introduces un diff por tubería y haces que informe solo de los errores tipográficos.

Recibir JSON para que lo consuma un programa

Al añadir --output-format json, el resultado se devuelve estructurado junto con metadatos como el ID de sesión y el coste.

claude -p "Resume este proyecto" --output-format json | jq -r '.result'

Si necesitas una salida conforme a un esquema concreto, añade --json-schema a --output-format json. La respuesta llega con una estructura validada en el campo structured_output.

Para transmitir en tiempo real a nivel de token, usa la combinación --output-format stream-json --verbose --include-partial-messages.

Diagrama de flujo de la entrada por tubería de claude -p, la salida JSON y las ramas según el código de salida
Introdúcelo por tubería, recíbelo con jq y crea ramas según el código de salida

Los permisos deben abrirse de antemano

En el modo -p no hay nadie que pulse el botón de aprobación. Debes permitir previamente las herramientas necesarias.

claude -p "Ejecuta las pruebas y corrige los fallos" --allowedTools "Bash,Read,Edit"

--allowedTools usa directamente la sintaxis de las reglas de permisos. Puedes restringirla como en Bash(git diff *). El espacio antes del asterisco es importante. Sin él, la coincidencia llega hasta git diff-index.

Al proporcionar --permission-mode acceptEdits se aprueban automáticamente la escritura de archivos y comandos habituales del sistema de archivos como mkdir y mv. Los demás comandos de shell y solicitudes de red siguen requiriendo --allowedTools.

Continuar la conversación

Para tareas que no terminan en una sola llamada, puedes continuar la sesión.

claude -p "Revisa los problemas de rendimiento de este código"
claude -p "Ahora DB concéntrate en la consulta" --continue

Si mantienes varias conversaciones en paralelo, guarda el session_id de la salida JSON y usa --resume para seleccionar y continuar una conversación concreta.

En CI, –bare es la opción estándar

Para scripts y CI, conviene usar también --bare. Omite la carga automática de hooks, skills, plugins, MCP y CLAUDE.md, acelera el inicio y produce el mismo resultado en cualquier máquina.

También hay una razón de seguridad. Una sesión -p no puede mostrar la ventana de confianza del espacio de trabajo, así que sin --bare ejecutará incluso los hooks y servidores MCP de un repositorio desconocido. La documentación oficial recomienda explícitamente --bare para las llamadas desde scripts. También indica que -p será el valor predeterminado en el futuro.

En --bare, recuerda que debes usar la variable de entorno ANTHROPIC_API_KEY en lugar del inicio de sesión mediante suscripción.

Ilustración que contrasta el texto GO BARE IN CI, un robot sin equipo en una habitación vacía y otro cubierto de dispositivos
En CI, es más seguro quitar todo el equipo y ejecutarlo sin nada

Resumen

claude -p convierte Claude Code en una herramienta Unix. Introduce datos por tubería, recibe JSON y crea ramas según el código de salida.

Abre los permisos de antemano con --allowedTools y ejecútalo de forma determinista y segura en CI con --bare.

En la próxima entrega volveremos a la interfaz interactiva y repasaremos el modo shell !, además de entradas especiales y atajos como Ctrl+O.

Fuentes y criterios de verificación

Seguir leyendo

Serie de Claude Code

Temas relacionados