Desde la versión 2.1.71 de Claude Code, tenemos disponible el comando /loop, que básicamente convierte nuestra terminal en un sistema de tareas programadas (cron) con IA.
La idea es simple pero muy potente: defines un intervalo y un prompt, y Claude lo ejecuta automáticamente de forma recurrente mientras la sesión esté activa.
¿Cómo funciona?
La sintaxis es directa:
/loop <intervalo> <prompt>Donde el intervalo acepta las siguientes unidades:
s→ segundos (se redondea al minuto, granularidad mínima de cron)m→ minutosh→ horasd→ días
Ejemplos:
/loop 5m check if the deployment finished
/loop 1h scan error logs and summarize issues
/loop 20m /review-pr 1234Al ejecutar el comando, Claude crea internamente una expresión cron y te devuelve un resumen con el Job ID:
CronCreate(*/5 * * * *: check if the deployment finished)
Scheduled 40c82a65 (Every 5 minutes)
- Prompt: check if the deployment finished
- Cron: */5 * * * * (every 5 minutes)
- Job ID: 40c82a65
- Recurring: yes, auto-expires after 7 days
- Cancel: use CronDelete with ID 40c82a65Detalles importantes
Hay varias cosas que debes tener en cuenta antes de lanzarte a usar /loop:
Las tareas son de sesión. Cuando cierras la terminal o sales de Claude Code, todos los loops se eliminan. No persisten entre reinicios.
Expiran automáticamente a los 7 días. Esto es una medida de seguridad para evitar que un loop olvidado se quede consumiendo tokens indefinidamente.
Máximo 50 tareas por sesión. Más que suficiente para cualquier workflow realista.
No hay catch-up. Si Claude está ocupado procesando algo cuando toca ejecutar un loop, se ejecuta una sola vez cuando quede libre, no una vez por cada ejecución perdida.
Jitter de hasta el 10%. Una tarea cada hora puede ejecutarse entre :00 y :06. Es intencionado para evitar picos de API.
Puedes encadenar slash commands. Esto es clave: /loop 20m /review-pr 1234 ejecuta un skill cada 20 minutos. Cualquier slash command se convierte en un job recurrente.
Gestionar los loops
Para listar los loops activos, simplemente pregunta en lenguaje natural:
show running cron jobsPara cancelar un loop específico:
CronDelete <job-id>También puedes crear recordatorios únicos (one-shot) en lenguaje natural:
remind me at 3pm to push the release branchClaude lo programa como una tarea que se auto-elimina tras ejecutarse.
Casos de uso prácticos para desarrolladores Laravel
Aquí es donde /loop se vuelve realmente interesante para nuestro día a día. Vamos con ejemplos concretos.
Monitorizar un despliegue en producción
Acabas de hacer deploy con Forge, Envoyer o Laravel Cloud y quieres asegurarte de que todo va bien:
/loop 5m curl -s https://miapp.com/api/health | check the response and tell me if something is wrongVigilar los logs de Laravel
Mientras desarrollas, puedes pedirle que vigile los logs de tu aplicación:
/loop 10m check storage/logs/laravel.log for new errors since the last check and summarize themMonitorizar las colas (queues)
Si estás procesando jobs pesados y quieres saber cómo van:
/loop 5m run php artisan queue:monitor redis:default --max=100 and alert me if the queue size is growingVigilar migraciones lentas o procesos largos
Cuando lanzas una migración que sabes que va a tardar:
/loop 2m check if the migration process is still running and estimate progressReview automático de PRs
Esta es la joya de la corona. Si trabajas en equipo:
/loop 20m /review-pr 1234Claude revisa la PR cada 20 minutos, detecta nuevos commits y te avisa de problemas.
Monitorizar los tests durante desarrollo
Mientras desarrollas una feature, puedes tener un loop que ejecute los tests relacionados:
/loop 10m run php artisan test --filter=PaymentServiceTest and tell me if anything failsVigilar el rendimiento de la base de datos
Si estás optimizando queries:
/loop 15m check storage/logs/laravel.log for slow queries (QueryExecuted events above 1000ms) and list themSupervisar el estado de Horizon
Si usas Laravel Horizon para gestionar tus colas:
/loop 5m run php artisan horizon:status and check if any queue has failed jobs or is pausedVigilar el consumo de disco
Útil cuando estás generando archivos temporales o procesando uploads:
/loop 30m check disk usage of storage/ directory and warn me if it exceeds 80%Monitorizar un endpoint externo (API de terceros)
Si dependes de una API externa para tu proyecto:
/loop 10m curl -s -o /dev/null -w "%{http_code}" https://api.externa.com/status and warn me if it's not 200Cuidado con el consumo de tokens
Cada ejecución del loop es un prompt completo que consume tokens. Un /loop 5m durante un día son 288 ejecuciones. En un plan de suscripción esto acelera tu consumo; con API billing, es dinero real.
Mi recomendación: empieza con intervalos largos y ajusta según necesidad. Un /loop 30m es mucho más razonable que un /loop 1m para la mayoría de casos.
/loop vs Scheduled Tasks (Claude Desktop)
Es importante no confundir /loop con las Scheduled Tasks de Claude Desktop:
/loopes de sesión: vive mientras la terminal esté abierta. Perfecto para "vigila esto mientras trabajo".Scheduled Tasks son persistentes: sobreviven reinicios y se ejecutan mientras la app esté abierta. Para briefings diarios o reviews semanales.
Usa /loop para lo inmediato. Usa Scheduled Tasks para lo recurrente a largo plazo.
Requisitos
Claude Code v2.1.71 o superior
Plan Pro, Max, Team o Enterprise
Para desactivar el scheduler por completo:
CLAUDE_CODE_DISABLE_CRON=1
Puedes comprobar tu versión con:
claude --versionY actualizar con:
npm update -g @anthropic-ai/claude-codeConclusión
/loop transforma a Claude Code de un asistente que responde preguntas a un agente autónomo que trabaja en segundo plano. Para desarrolladores Laravel, las posibilidades son enormes: desde monitorizar despliegues hasta automatizar code reviews.
La clave está en pensar qué tareas repetitivas haces manualmente durante el día y delegarlas a un loop. Empieza con algo simple como monitorizar logs y ve explorando desde ahí.