Modo sin interfaz
Ejecuta Claude Code programáticamente sin interfaz de usuario interactiva
Descripción general
El modo sin interfaz te 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 principal de línea de comandos para Claude Code es el comando claude
. Usa la bandera --print
(o -p
) para ejecutar en modo no interactivo e imprimir el resultado final:
Opciones de configuración
El SDK aprovecha todas las opciones de CLI disponibles en Claude Code. Aquí están las principales para el uso del SDK:
Bandera | Descripción | Ejemplo |
---|---|---|
--print , -p | Ejecutar en modo no interactivo | claude -p "consulta" |
--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 | Agregar al prompt del sistema (solo con --print ) | claude --append-system-prompt "Instrucción personalizada" |
--allowedTools | Lista separada por espacios de herramientas permitidas, o cadena de lista separada por comas de herramientas permitidas | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separada por espacios de herramientas denegadas, o cadena de lista separada por comas de herramientas denegadas | claude --disallowedTools mcp__splunk mcp__github claude --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 prompts de permisos (solo con --print ) | claude --permission-prompt-tool mcp__auth__prompt |
Para una lista completa de opciones de CLI y características, consulta la documentación de referencia de CLI.
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 (predeterminado)
Salida JSON
Devuelve datos estructurados incluyendo metadatos:
Formato de respuesta:
Salida JSON en streaming
Transmite cada mensaje conforme se recibe:
Cada conversación comienza con un mensaje inicial del sistema init
, seguido por una lista de mensajes de usuario y asistente, seguido por un mensaje final del sistema result
con estadísticas. Cada mensaje se emite como un objeto JSON separado.
Formatos de entrada
Entrada de texto (predeterminado)
Entrada JSON en streaming
Un flujo de mensajes proporcionado a través de stdin
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 está procesando 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 en streaming 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
-
Usa formato de salida JSON para análisis programático de respuestas:
-
Maneja errores con gracia - verifica códigos de salida y stderr:
-
Usa gestión de sesiones para mantener contexto en conversaciones de múltiples turnos
-
Considera timeouts para operaciones de larga duración:
-
Respeta los límites de velocidad al hacer múltiples solicitudes agregando 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