9. Comandos slash y opciones del CLI

Objetivo del tema

Organizar el mapa completo de comandos de Claude Code: repasar los comandos slash por categoría, dominar las banderas de la línea de comandos, aprender a ejecutar tareas no interactivas con claude -p, elegir formatos de salida para scripts y preparar el terreno para automatizaciones y CI/CD.

9.1 Dos caras del mismo agente

Claude Code se opera con dos familias de comandos complementarias. Los comandos slash (tema 7) controlan la sesión interactiva desde dentro; las opciones del CLI controlan cómo arranca el proceso desde la terminal, y son la base de scripts, cron jobs y pipelines. El mapa general:

claude                          # sesión interactiva (por defecto)
claude "prompt inicial"         # sesión interactiva con primer pedido
claude -p "tarea"               # modo no interactivo: ejecuta y termina
claude --help                   # referencia completa de banderas

Toda bandera combina con las demás: claude -p --model sonnet --max-turns 10 "..." es una especificación completa de una tarea automatizada en una sola línea.

9.2 Banderas principales de la línea de comandos

Banderas más utilizadas al invocar claude
Bandera Función
-p / --print Modo no interactivo: ejecuta la tarea, imprime el resultado y termina.
--model / -m Fija el modelo para esta ejecución (sonnet, opus, haiku o el identificador completo).
--permission-mode Arranca en un modo de permisos concreto (plan, acceptEdits, default).
--allowedTools Lista de herramientas pre-aprobadas con patrones: "Bash(npm test:*)", "Read".
--disallowedTools Lista de herramientas prohibidas para esta ejecución.
-c / --continue Continúa la conversación más reciente del proyecto.
-r / --resume Retoma una sesión: sin argumento abre el selector; con ID retoma esa.
--add-dir Agrega directorios de trabajo adicionales (útil en monorepos).
--settings Carga un archivo de configuración JSON específico para la ejecución.
--max-turns Limita la cantidad de ciclos agénticos (imprescindible en automatización).
--verbose Registro detallado de herramientas y eventos.
--append-system-prompt Agrega instrucciones al prompt de sistema (solo con -p).

9.3 Modo headless: claude -p

El modo no interactivo convierte al agente en una función de terminal: recibe una tarea, trabaja sobre el proyecto (respetando permisos y reglas) y devuelve el resultado. Usos típicos:

# Consulta puntual sobre el proyecto
claude -p "¿Qué librerías de logging usa este proyecto?"

# Encadenado con pipes: el contenido entra por stdin
cat logs/error.log | claude -p "Explica la causa probable de este error"

# Generación de artefactos
claude -p "Redacta el changelog a partir de los commits de esta semana" > CHANGELOG.md

Los códigos de salida hacen que sea fácil de integrar en scripts: 0 indica éxito, otros valores señalan fallos operativos o problemas de uso, así que un pipeline puede reaccionar con && o comprobaciones explícitas.

9.4 Formatos de salida para automatización

Con --output-format eliges cómo recibe el resultado tu programa consumidor:

Formatos de salida del modo headless
Formato Qué devuelve Ideal para
text (por defecto) La respuesta plana del modelo. Uso humano directo en scripts simples.
json Un objeto JSON con el resultado y metadatos: costo, duración, ID de sesión y tokens consumidos. Procesar resultados, auditar consumos, reportes.
stream-json Un flujo NDJSON con cada mensaje conforme ocurre (combinar con --verbose). Interfaces en vivo y pipelines reactivos.

Ejemplo de salida en JSON (simplificado):

{
  "type": "result",
  "result": "El proyecto usa pino en el backend y consola...",
  "session_id": "a1b2c3d4-...",
  "total_cost_usd": 0.0243,
  "duration_ms": 14320
}

Para tareas estructuradas, --json-schema valida que la salida cumpla un esquema JSON que tú definas, eliminando el parseo frágil por expresiones regulares.

9.5 Comandos auxiliares del CLI

Además de ejecutar tareas, el binario trae utilidades de mantenimiento y operación:

claude update y claude doctor

Fuerzan la actualización y ejecutan el diagnóstico integral de instalación (tipo de instalación, actualizador, duplicados).

claude config

Lee y ajusta opciones globales desde la terminal (claude config get / set), sin abrir la interfaz.

claude mcp

Administra servidores MCP (add, list, serve); lo detallamos en el tema 16.

claude setup-token

Genera un token de larga duración basado en tu suscripción, pensado para ejecutar en CI (tema 5).

9.6 Comandos slash: repaso por categorías

Como cierre del mapa, agrupamos los comandos slash vistos en el tema 7 según su propósito:

Categorías de comandos slash
Categoría Comandos Para qué
Contexto y sesión /clear, /compact, /rewind, /resume, /export Gestionar el historial y el ciclo de vida de la conversación.
Configuración /config, /model, /memory, /statusline, /terminal-setup, /vim Ajustar el entorno de trabajo a tu gusto.
Cuenta y consumo /login, /logout, /status, /usage, /cost Controlar identidad, modelo activo y gasto.
Extensibilidad /agents, /mcp, /ide, /add-dir Conectar subagentes, herramientas externas y editores.
Diagnóstico /doctor, /help, /bug Resolver problemas y reportar errores.

9.7 Variables de entorno útiles

Variables de entorno más usadas
Variable Efecto
ANTHROPIC_API_KEY Clave de API para autenticación sin navegador.
ANTHROPIC_MODEL Modelo por defecto en entornos automatizados.
ANTHROPIC_SMALL_FAST_MODEL Modelo para tareas internas ligeras del agente.
ANTHROPIC_BASE_URL Endpoint alternativo (gateways y proxies de empresa).
HTTP_PROXY / HTTPS_PROXY Salida por proxy corporativo.
CLAUDE_CODE_MAX_OUTPUT_TOKENS Techo de tokens por respuesta.
DISABLE_AUTOUPDATER Desactiva el actualizador automático (ideal en CI).
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC Reduce llamadas no esenciales (telemetría, comprobaciones).

9.8 Ejemplo práctico: revisión automática de cambios

Un script que analiza los cambios pendientes del repositorio y devuelve un informe estructurado, listo para un cron o un paso de pipeline:

#!/usr/bin/env bash
set -e

claude -p \
  --model sonnet \
  --max-turns 15 \
  --allowedTools "Read" "Grep" "Glob" "Bash(git diff:*)" "Bash(git status:*)" \
  --output-format json \
  "Analiza git status y git diff. Resume los cambios en tres puntos, \
   señala riesgos y sugiere el próximo paso." \
  > informes/revision-$(date +%F).json

echo "Informe generado en informes/revision-$(date +%F).json"

Observa los ingredientes profesionales: --max-turns acota el gasto, --allowedTools otorga exactamente los permisos necesarios (lectura y comandos git informativos, nada más), y la salida JSON deja metadatos de costo y duración para el reporte mensual.

Consejo de economía: en tareas repetitivas, pide que el resultado sea breve y estructurado ("responde en máximo 5 líneas"). En modo headless cada ejecución parte de cero, así que prompts concisos y modelos pequeños (Haiku) para lo mecánico hacen una gran diferencia en la factura.

Conclusión: con el mapa completo de comandos, Claude Code queda en dos modos complementarios: interactivo para pensar y construir junto al agente, y headless con claude -p para convertir al agente en un componente programable de tus scripts. Con estas piezas estamos listos para el primer proyecto práctico completo con Node.js y Express.