-p con su indicación y las opciones de CLI que necesite:
claude -p). Para los paquetes SDK de Python y TypeScript con salidas estructuradas, devoluciones de llamada de aprobación de herramientas y objetos de mensaje nativos, consulte la documentación completa del Agent SDK.
Uso básico
Agrega la bandera-p (o --print) a cualquier comando claude para ejecutarlo de forma no interactiva. No todas las opciones de CLI se combinan con -p. Claude Code rechaza --bg, y rechaza --cloud con una descripción de tarea, con un error que nombra el conflicto; --cloud con un ID de sesión y -p en su lugar pone en cola un mensaje en esa sesión en la nube y sale. Las opciones que combinarás con -p a menudo incluyen:
--continuepara continuar conversaciones--allowedToolspara aprobar herramientas automáticamente--output-formatpara obtener salida estructurada
Comienza más rápido con modo bare
Agrega--bare para reducir el tiempo de inicio omitiendo el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Sin él, claude -p los descubre y los carga como lo haría una sesión interactiva, incluido cualquier elemento configurado en el directorio de trabajo o ~/.claude.
El modo bare es útil para CI y scripts donde necesitas el mismo resultado en cada máquina. Un hook en ~/.claude de un compañero de equipo o un servidor MCP en .mcp.json del proyecto no se ejecutará, porque el modo bare nunca los lee. Un directorio que nombres con --add-dir es una excepción parcial: el modo bare carga skills de su carpeta .claude/skills/, pero aún omite sus carpetas .claude/commands/ y .claude/agents/. Skills de directorios adicionales cubre lo que sí y no se carga.
Sin --bare, una sesión -p ejecuta los hooks en .claude/settings.json de un proyecto y conecta los servidores en su .mcp.json, incluso en una carpeta en la que nunca has confiado. Una sesión -p no muestra diálogo de confianza del espacio de trabajo ni solicitud de aprobación por servidor. Lo que se ejecuta antes de confiar en una carpeta cubre cada tipo de contenido del repositorio bajo -p y cómo mantenerlo fuera.
Este ejemplo ejecuta una tarea de resumen única en modo bare y aprueba previamente la herramienta Read para que la llamada se complete sin una solicitud de permiso. Establece ANTHROPIC_API_KEY antes de ejecutarlo, porque el modo bare no usa tu inicio de sesión de suscripción:
ANTHROPIC_API_KEY en el entorno, con una clave creada en la Consola de Claude, o proporciona un apiKeyHelper en el JSON --settings. Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry continúan leyendo sus propias credenciales de proveedor como de costumbre.
En modo bare, Claude tiene acceso a las herramientas Bash, lectura de archivos y edición de archivos. Pasa el contexto que necesites con una bandera:
Los hooks siguen sin ejecutarse en modo bare cuando los pasas con
--settings, o en el hooks/hooks.json o la clave hooks del manifiesto de un plugin que cargas con una bandera. No uses el modo bare para una ejecución que los necesite.
El modo bare también limita lo que ocurre mientras se ejecuta la sesión:
- Servidores MCP: solo se conectan los servidores proporcionados en la línea de comandos, por ejemplo con
--mcp-config. En una sesión interactiva, Claude Code también omite la conexión automática con el IDE a menos que pases--ide. - Recordatorios del sistema: Claude recibe tus prompts y los resultados de las herramientas sin los recordatorios del sistema que Claude Code agregaría junto a ellos. Por ejemplo, a Claude no se le informa cuando un archivo que leyó antes cambia en el disco, y no recibe la lista de skills disponibles, incluidos los skills de una carpeta de
--add-dir. - Tareas en segundo plano: Claude no puede ejecutar comandos en segundo plano ni subagentes en segundo plano, y las demás funciones que
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSdesactiva también quedan desactivadas. Un comando que alcanza su tiempo de espera se detiene en lugar de pasar a segundo plano.
--bare conectaba los servidores MCP que conectaría una sesión normal, cada sesión con --bare enviaba recordatorios del sistema y las tareas en segundo plano seguían disponibles.
--bare es el modo recomendado para llamadas con scripts y SDK, y se convertirá en el predeterminado para -p en una versión futura.Tareas en segundo plano al salir
Después de que Claude termina su turno y stdin se ha cerrado, una ejecuciónclaude -p puede permanecer abierta para esperar el trabajo en segundo plano que Claude inició.
A menos que siga ejecutándose un comando en segundo plano que haya iniciado la conversación principal, de forma predeterminada Claude Code detiene lo que aún se esté ejecutando después de 10 minutos de espera inactiva continua y descarta su resultado parcial. Para cambiar el límite de 10 minutos, establece CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS, o establécelo en 0 para esperar sin límite.
La ejecución espera trabajo en segundo plano como comandos en segundo plano, subagentes y flujos de trabajo, vigilancias de Monitor y activaciones pendientes de /loop:
- Comandos en segundo plano: para un comando que inició la conversación principal, por ejemplo un servidor de desarrollo o una compilación de vigilancia, la ejecución espera hasta que el comando sale o alcanza su límite de tiempo. Luego Claude toma un turno más con el resultado. Mientras el comando se ejecuta, el límite de 10 minutos no finaliza la espera.
- Subagentes y flujos de trabajo en segundo plano: la ejecución permanece abierta hasta que cada uno termine o el límite de 10 minutos finalice la espera.
- Vigilancias de Monitor: la ejecución espera hasta que se agote el tiempo de espera de la vigilancia o el límite de 10 minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, el tiempo de espera de una vigilancia se agota cinco minutos después de que Claude la inicia.
- Activaciones pendientes: en una ejecución cuyo prompt pasaste como texto en lugar de con
--input-format stream-json, cuando Claude ha programado una activación de/loopa su propio ritmo, la ejecución espera a que se dispare cada activación y ejecuta su iteración hasta que el bucle termina, incluso más allá del límite de 10 minutos.
Waiting for background work to finish y nombra el trabajo. Con salida json o stream-json, la línea se imprime solo cuando stdout no es una terminal, por lo que el JSON que lee tu script nunca la incluye.
Si la ejecución alcanza su límite de --max-budget-usd, Claude Code detiene el trabajo en segundo plano restante en lugar de esperar.
Cuando el trabajo en segundo plano inicia otro turno, la ejecución imprime el resultado de cada turno con la salida text predeterminada y el resultado del último turno con la salida json. Antes de la v2.1.295, la ejecución también imprimía solo el resultado del último turno con la salida text.
Dale más tiempo al comando largo de un subagente
Cuando el comando largo de un subagente pasa a segundo plano al agotarse su tiempo de espera, sigue ejecutándose, pero una ejecuciónclaude -p puede salir con código 0 antes de que el comando termine.
Para aumentar el tiempo de espera predeterminado por encima del tiempo de ejecución del comando, establece BASH_DEFAULT_TIMEOUT_MS, por ejemplo BASH_DEFAULT_TIMEOUT_MS=300000 claude -p "<prompt>" para cinco minutos. Para un comando de un subagente en segundo plano que dure más de 10 minutos, aumenta también el límite de 10 minutos.
Trabajo MCP cuando termina una ejecución no interactiva
Una ejecuciónclaude -p no espera el trabajo MCP en segundo plano:
- Tareas MCP: en un servidor remoto, el trabajo continúa. Para volver a seguirlo, reanuda esa sesión, no como una ejecución única
claude -p "<prompt>". - Llamadas MCP que movió el paso automático a segundo plano: el resultado de la llamada se pierde.
Detener una ejecución con SIGTERM
Si detienes una ejecuciónclaude -p con SIGTERM, por ejemplo con kill o desde un supervisor de procesos, Claude Code sale con código 143. Claude Code deja el turno que estaba en progreso sin terminar y no registra ningún resultado para él. Para terminar el turno en su lugar, envía SIGINT, o llama a interrupt() del Agent SDK, antes de detener el proceso.
En SIGTERM, Claude Code termina el árbol de procesos de cualquier comando Bash que aún se esté ejecutando. Claude Code luego ejecuta hooks SessionEnd y sale. Al salir, Claude Code no inicia ninguna nueva llamada a herramienta, no envía ninguna nueva solicitud al modelo y no ejecuta ningún hook que no sea SessionEnd. Si la ejecución estaba en medio de un comando o esperando una solicitud de permiso cuando llegó la señal, Claude Code maneja ese paso de la siguiente manera:
- Ejecutando un comando: Claude Code registra el comando como terminado en la sesión.
- Esperando una respuesta a una solicitud de permiso: si envías SIGTERM al proceso, Claude Code deja la solicitud sin responder. Si tu programa cierra la sesión a través del Agent SDK, el SDK finaliza la entrada de Claude Code antes de enviar cualquier señal, y Claude Code cancela la solicitud tan pronto como finaliza la entrada.
CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1.
Si el directorio de trabajo se elimina
Si el directorio de trabajo de una sesiónclaude -p o Agent SDK se elimina durante la sesión, la sesión continúa ejecutándose. Cuando un turno comienza mientras falta el directorio, Claude Code emite un mensaje de advertencia en la salida stream-json, y los comandos de shell fallan hasta que el directorio exista nuevamente.
Ejemplos
Estos ejemplos destacan patrones comunes de CLI. Donde un comando nombra un archivo comoauth.py o build-error.txt, sustituye un archivo de tu propio proyecto. En CI u otros entornos con scripts, agrega --bare para que Claude Code se inicie sin cargar los hooks del host, plugins, memoria automática o CLAUDE.md.
Canalizar datos a través de Claude
El modo no interactivo lee stdin, por lo que puedes canalizar datos y redirigir la respuesta como cualquier otra herramienta de línea de comandos. Este ejemplo canaliza un registro de compilación a Claude y escribe la explicación en un archivo:--output-format json, la carga útil de respuesta incluye total_cost_usd y un desglose de costos por modelo, por lo que los llamadores con scripts pueden rastrear el gasto sin consultar el panel de uso. Cuando continúas una conversación anterior con --continue o --resume, la ejecución informa el total completo de la conversación, gastos de ejecuciones anteriores incluidos. Ambas cifras son estimaciones del lado del cliente y pueden diferir de tu factura real.
El stdin canalizado está limitado a 10MB. Si excedes el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escribe el contenido en un archivo y haz referencia a la ruta del archivo en tu prompt en lugar de canalizarlo.
Agregar Claude a un script de compilación
Puedes envolver una llamada no interactiva en un script para usar Claude como un linter o revisor específico del proyecto. Este scriptpackage.json canaliza el diff contra main a Claude y le pide que informe sobre errores tipográficos. Canalizar el diff significa que Claude no necesita permiso de Bash para leerlo, y las comillas dobles escapadas mantienen el script portátil a Windows:
npm run lint:claude.
Obtener salida estructurada
Usa--output-format para controlar cómo se devuelven las respuestas:
text(predeterminado): salida de texto sin formatojson: JSON estructurado con resultado, ID de sesión y metadatosstream-json: JSON delimitado por saltos de línea para streaming en tiempo real
result:
--output-format json con --json-schema y una definición de JSON Schema. La respuesta incluye metadatos sobre la solicitud (ID de sesión, uso, etc.) con la salida estructurada en el campo structured_output.
Este ejemplo extrae nombres de funciones y los devuelve como una matriz de cadenas:
claude sale con Error: --json-schema is not a valid JSON Schema seguido del diagnóstico del validador. Claude Code acepta esquemas que utilizan la palabra clave format, como "format": "email", pero trata format como una anotación y no la aplica.
Si una ejecución termina sin una salida estructurada válida, por ejemplo porque Claude rechazó la solicitud, la respuesta no tiene el campo structured_output. Antes de que tu script use structured_output, comprueba que el campo esté presente.
Respuestas en streaming
Usa--output-format stream-json con --verbose e --include-partial-messages para recibir tokens a medida que se generan. Cada línea es un objeto JSON que representa un evento:
result con el texto de respuesta final, el costo y los metadatos de la sesión.
Si tu consumidor lee el stream lentamente, Claude Code espera a que se drene la salida en cola antes de salir, escalando la espera según cuánto sigue en cola, con un límite de 30 segundos.
El siguiente ejemplo usa jq para filtrar deltas de texto y mostrar solo el texto en streaming. El flag -r genera cadenas sin formato (sin comillas) y -j une sin saltos de línea para que los tokens se transmitan en streaming de forma continua:
Seguir mensajes de subagentes
Los mensajes de subagentes y de skills que se ejecutan en un subagente aparecen en el stream como mensajesassistant y user. Su campo parent_tool_use_id indica a qué ejecución pertenece cada uno. Los mensajes de la conversación principal llevan null en ese campo.
El primer mensaje de un skill bifurcado, o de un subagente que se ejecuta en primer plano, es un mensaje user que lleva el prompt o el contenido del skill que lo impulsa. Después de ese primer mensaje, Claude Code emite:
- De forma predeterminada: los bloques
tool_useytool_resultde la ejecución. - Con
--forward-subagent-textoCLAUDE_CODE_FORWARD_SUBAGENT_TEXT: también los bloques de texto y pensamiento de la ejecución, para que puedas reconstruir la transcripción de cada ejecución.
parent_tool_use_id, los mensajes del subagente anidado llevan el ID de la llamada a la herramienta Agent o Skill que lo inició, para que puedas reconstruir el árbol de anidamiento completo siguiendo esos IDs.
Una ejecución que Claude inicia con una llamada a herramienta lleva el ID de esa llamada. Un skill bifurcado que inicias pasando /<skill-name> como prompt no tiene llamada a herramienta, así que sus mensajes llevan en su lugar un valor forked-command- y llegan después de que termina. Busca en la primera columna cómo comenzó la ejecución:
Para un skill bifurcado iniciado desde el prompt, haz coincidir
parent_tool_use_id con el prefijo forked-command-, porque el nombre que le sigue puede diferir del que escribiste.
Si faltan algunos de estos mensajes en tu stream, compara tu versión de Claude Code con estos mínimos:
- Un skill bifurcado que Claude inicia con la herramienta Skill desde la conversación principal: v2.1.86 o posterior para sus bloques
tool_useytool_result, y v2.1.265 o posterior para su primer mensajeusery sus bloques de texto y pensamiento - Mensajes de subagentes que genera un skill bifurcado, y de skills bifurcados iniciados dentro de un subagente u otro skill bifurcado: v2.1.275 o posterior
- Mensajes de un skill bifurcado que inicias pasando
/<skill-name>como prompt: v2.1.287 o posterior
Manejar reintentos de API
Cuando una solicitud de API falla con un error reintentable, Claude Code emite un eventosystem/api_retry antes de reintentar. En v2.1.246 o posterior, cuando un 401 o 403 rechaza una credencial apiKeyHelper, Claude Code realiza los primeros dos reintentos silenciosamente sin evento, luego emite el evento como de costumbre desde el tercer reintento consecutivo en adelante. Los reintentos silenciosos aún cuentan para attempt. Puedes usar el evento para mostrar el progreso del reintento en tu propia interfaz.
Leer metadatos de sesión
El eventosystem/init informa metadatos de sesión incluyendo el modelo, herramientas, servidores MCP y plugins cargados. Es el primer evento en el stream a menos que eventos de inicio lo precedan:
- eventos
plugin_install, cuandoCLAUDE_CODE_SYNC_PLUGIN_INSTALLestá configurado. - eventos
hook_started,hook_progressyhook_response, mientras se ejecuta un hookSessionStartoSetupconfigurado. Estos se transmiten en streaming a medida que el hook los produce.
capabilities opcional de cadenas que nombran los comportamientos del protocolo que esta versión de Claude Code implementa, como interrupt_receipt_v1 o interrupt_cancel_queued_v1. Revísala para detectar características en lugar de comparar cadenas de versión, e ignora los valores que no reconozcas. Consulta SDKSystemMessage para la lista de capacidades.
Hacer fallar CI cuando un plugin o servidor MCP no se carga
Usa los campos de plugin en el eventosystem/init para detectar un plugin que no se cargó:
Cuando un directorio o archivo comprimido de
--plugin-dir en sí falla al cargarse, su entrada plugin_errors incluye la ruta absoluta resuelta como path. Úsala para saber cuál de varios valores --plugin-dir falló. El campo path requiere Claude Code v2.1.283 o posterior.
Usa los campos del servidor MCP de la misma manera. Cuando pasas --mcp-config con -p, Claude Code espera a los servidores aún pendientes antes de ejecutar el primer turno, hasta el tiempo de espera de inicio MCP_TIMEOUT, 30 segundos de forma predeterminada. Un servidor remoto con una lista de herramientas en caché omite la espera, muestra pending en system/init y se conecta en su primera llamada a herramienta. En un entorno autoalojado, se aplica en su lugar una espera más corta. La espera requiere Claude Code v2.1.221 o posterior.
Claude Code valida cada entrada --mcp-config al inicio y omite las entradas que no pasan la validación, por ejemplo una entrada url sin type. La ejecución continúa y sale limpiamente, así que revisa estos campos para detectar un servidor que nunca se cargó:
Cuando ejecutas el comando a mano en una terminal, Claude Code también imprime una advertencia de inicio en stderr, como
Warning: 1 MCP server skipped due to invalid config:, seguida de la razón de cada entrada omitida.
Cuando rediriges stderr, o cuando un programa como un ejecutor de CI o un host del SDK lo captura, Claude Code no imprime ninguna advertencia. Informa las entradas omitidas solo en el campo mcp_server_errors.
Rastrear instalaciones de plugins
CuandoCLAUDE_CODE_SYNC_PLUGIN_INSTALL está configurado, Claude Code emite eventos system/plugin_install mientras los plugins del marketplace se instalan antes del primer turno. Úsalos para mostrar el progreso de instalación en tu propia interfaz de usuario.
Aprobar herramientas automáticamente
Usa--allowedTools para permitir que Claude use ciertas herramientas sin pedir confirmación. Enumerar Read y Edit permite que Claude lea y edite archivos sin pedir permiso, salvo las lecturas desde rutas de red. Enumerar Bash hace lo mismo para comandos de shell, excepto en una ejecución que comienza en modo automático, donde Claude Code descarta una entrada Bash sin más como una regla de permisos demasiado amplia y el modo automático evalúa cada comando en su lugar. Este ejemplo ejecuta un conjunto de pruebas y corrige fallos con esas tres herramientas enumeradas:
claude -p en modo Manual, una llamada que necesita aprobación se deniega a menos que algo la apruebe, como un hook PermissionRequest o un --permission-prompt-tool. Con Claude Code v2.1.302 o posterior, las ejecuciones claude -p comienzan en modo Manual cuando nada establece un modo de permisos.
Para establecer una línea base para toda la sesión en lugar de enumerar herramientas individuales, pasa un modo de permisos con --permission-mode, como auto, dontAsk o acceptEdits:
-
auto: pasa--permission-mode autopara que un clasificador revise la mayoría de las acciones en lugar de ti -
dontAsk: Claude Code deniega cualquier llamada que de otro modo pediría confirmación, lo que es útil para ejecuciones de CI bloqueadas, aunque un mod que instalaste aún puede aprobar algunas de esas llamadas. Para comprobar qué llamadas puede aprobar un mod, consulta Extender permisos con hooks. Las acciones que no necesitan aprobación en modo Manual aún se ejecutan, como lecturas de archivos en tus directorios de trabajo y el conjunto de comandos de solo lectura. Las acciones que cubren tus entradas--allowedToolso reglaspermissions.allowtambién se ejecutan.AskUserQuestion, las herramientas de conector que tu organización configuró comoask, las herramientas MCP marcadas conrequiresUserInteractiony las lecturas desde rutas de red se deniegan incluso cuando coincide una regla de permisos -
acceptEdits: Claude escribe archivos sin pedir confirmación, y Claude Code aprueba automáticamente comandos comunes del sistema de archivos comomkdir,touch,mvycp. Las acciones que ningún modo aprueba automáticamente aún se aplican. Aparte del conjunto de comandos de solo lectura, otros comandos de shell y solicitudes de red aún necesitan una entrada--allowedToolso una reglapermissions.allow. Consulta qué aprueba automáticamenteacceptEditspara la lista completa
acceptEdits como línea base:
Desactivar las solicitudes de permiso en ejecuciones desatendidas
Pasa--permission-prompts none cuando nadie esté disponible para responder solicitudes de permiso, por ejemplo en un trabajo programado. El flag importa sobre todo cuando tu ejecución tiene un host de permisos: una aplicación del Agent SDK con una devolución de llamada canUseTool, o una herramienta MCP que pasas con --permission-prompt-tool. Sin el flag, tu ejecución espera a que ese host responda cada solicitud de permiso.
Con el flag, tu ejecución no consulta al host ni lo espera. Cualquier cosa que pediría confirmación se deniega a menos que un hook PermissionRequest la permita, se le indica a Claude que nadie puede aprobar la solicitud y que no la reintente, y la ejecución continúa. En una ejecución -p sin host, estas solicitudes se deniegan de cualquier forma, y el flag también le indica a Claude que no las reintente. Las reglas de permisos, los hooks PermissionRequest y el modo de permisos que establezcas siguen decidiendo primero cada llamada; Claude Code deniega solo las solicitudes que nada más resuelve.
Este ejemplo ejecuta una tarea desatendida en modo automático. El clasificador revisa cada acción como de costumbre, y Claude Code deniega cualquier cosa que habría terminado en una solicitud de permiso:
--permission-prompts none, Claude Code elimina las herramientas que necesitan una respuesta de una persona, como AskUserQuestion, por lo que Claude no puede llamarlas. Cualquier solicitud de elicitación MCP que ningún hook Elicitation responda se cancela.
Con --output-format stream-json, las denegaciones aparecen como mensajes del sistema permission_denied, y el mensaje de resultado final las enumera en permission_denials.
El flag
--permission-prompts requiere Claude Code v2.1.259 o posterior. Las versiones anteriores lo rechazan con un error de opción desconocida.Crear un commit
Este ejemplo revisa los cambios preparados y crea un commit con un mensaje apropiado:--allowedTools utiliza la sintaxis de reglas de permisos. El * final habilita la coincidencia de prefijo, por lo que Bash(git diff *) permite cualquier comando que comience con git diff. El espacio antes de * es importante: sin él, Bash(git diff*) también coincidiría con git diff-index.
La compatibilidad de comandos difiere en modo
-p:- Los skills invocados por el usuario y los comandos personalizados funcionan. Incluye
/skill-nameen la cadena del prompt y Claude Code lo expande antes de ejecutar. - Los comandos integrados que solo se ejecutan en la interfaz de la terminal, como
/login, no están disponibles. /model,/effort,/fast,/colory/renameaceptan el valor como argumento, por ejemplo/model sonnet, y/mcpsin argumento imprime un resumen de texto del estado del servidor. Estas formas siguen las notas de disponibilidad de cada comando.- Para cambiar un ajuste, pasa
key=valuea/config, por ejemplo/config verbose=true. /output-style <style>cambia de estilo de salida y/output-stylesolo los enumera. Requiere Claude Code v2.1.269 o posterior.
Personalizar el prompt del sistema
Usa--append-system-prompt para agregar instrucciones mientras mantienes el comportamiento predeterminado de Claude Code. Este ejemplo canaliza el diff de un PR a Claude y le indica que lo revise en busca de vulnerabilidades de seguridad. Guárdalo como un script de shell, por ejemplo review.sh:
"$1" representa el primer argumento que pasas en la línea de comandos. Ejecuta bash review.sh 123 y el shell reemplaza "$1" con 123, por lo que el script obtiene el diff del PR 123. Claude Code imprime la revisión como JSON, con el texto en el campo result.
Consulta flags del prompt del sistema para más opciones, incluido --system-prompt para reemplazar completamente el prompt predeterminado. Si lo reemplazas, la ejecución también comienza sin la instantánea del estado de git.
Continuar conversaciones
Usa--continue para continuar la conversación más reciente, o --resume con un ID de sesión para continuar una conversación específica. En Claude Code v2.1.257 o posterior, cuando pasas --continue, Claude Code abre una sesión en segundo plano que ha terminado, pero no una que aún se está ejecutando. Este ejemplo ejecuta una revisión y luego envía prompts de seguimiento:
--resume la ruta absoluta al archivo de transcripción .jsonl de una sesión, y Claude Code continúa la conversación almacenada en ese archivo.
Próximos pasos
- Inicio rápido del Agent SDK: construya su primer agente con Python o TypeScript
- Referencia de CLI: todas las banderas y opciones de CLI
- GitHub Actions: utilice el Agent SDK en flujos de trabajo de GitHub
- GitLab CI/CD: utilice el Agent SDK en canalizaciones de GitLab