Descripción general
El modo sin interfaz permite ejecutar Claude Code programáticamente desde scripts de línea de comandos y herramientas de automatización sin ninguna interfaz de usuario interactiva.Uso básico
La interfaz de línea de comandos principal para Claude Code es el comandoclaude. Utiliza la bandera --print (o -p) para ejecutar en modo no interactivo e imprimir el resultado final:
Opciones de configuración
El modo sin interfaz aprovecha todas las opciones de CLI disponibles en Claude Code. Aquí están las principales para automatización y scripting:| Bandera | Descripción | Ejemplo |
|---|---|---|
--print, -p | Ejecutar en modo no interactivo | claude -p "query" |
--output-format | Especificar formato de salida (text, json, stream-json) | claude -p --output-format json |
--resume, -r | Reanudar una conversación por ID de sesión | claude --resume abc123 |
--continue, -c | Continuar la conversación más reciente | claude --continue |
--verbose | Habilitar registro detallado | claude --verbose |
--append-system-prompt | Añadir al indicador del sistema (solo con --print) | claude --append-system-prompt "Custom instruction" |
--allowedTools | Lista de herramientas permitidas separadas por espacios, o cadena de lista separada por comas de herramientas permitidas | claude --allowedTools mcp__slack mcp__filesystemclaude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista de herramientas denegadas separadas por espacios, o cadena de lista separada por comas de herramientas denegadas | claude --disallowedTools mcp__splunk mcp__githubclaude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Cargar servidores MCP desde un archivo JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Herramienta MCP para manejar indicadores de permisos (solo con --print) | claude --permission-prompt-tool mcp__auth__prompt |
Conversaciones de múltiples turnos
Para conversaciones de múltiples turnos, puedes reanudar conversaciones o continuar desde la sesión más reciente:Formatos de salida
Salida de texto (predeterminada)
Salida JSON
Devuelve datos estructurados incluyendo metadatos:Salida JSON de transmisión
Transmite cada mensaje a medida que se recibe:init inicial, seguido de una lista de mensajes de usuario y asistente, seguido de un mensaje del sistema result final con estadísticas. Cada mensaje se emite como un objeto JSON separado.
Formatos de entrada
Entrada de texto (predeterminada)
Entrada JSON de transmisión
Un flujo de mensajes proporcionados a través destdin donde cada mensaje representa un turno de usuario. Esto permite múltiples turnos de una conversación sin relanzar el binario claude y permite proporcionar orientación al modelo mientras procesa una solicitud.
Cada mensaje es un objeto JSON ‘Mensaje de usuario’, siguiendo el mismo formato que el esquema de mensaje de salida. Los mensajes se formatean usando el formato jsonl donde cada línea de entrada es un objeto JSON completo. La entrada JSON de transmisión requiere -p y --output-format stream-json.
Ejemplos de integración de agentes
Bot de respuesta a incidentes SRE
Revisión de seguridad automatizada
Asistente legal de múltiples turnos
Mejores prácticas
-
Usar formato de salida JSON para análisis programático de respuestas:
-
Manejar errores correctamente - verificar códigos de salida y stderr:
- Usar gestión de sesiones para mantener contexto en conversaciones de múltiples turnos
-
Considerar tiempos de espera para operaciones de larga duración:
- Respetar límites de velocidad al realizar múltiples solicitudes añadiendo retrasos entre llamadas
Recursos relacionados
- Uso y controles de CLI - Documentación completa de CLI
- Flujos de trabajo comunes - Guías paso a paso para casos de uso comunes