Llevo meses ejecutando tareas de Claude Code con un cron casero. Un script Bash que arranca una sesión headless, le pasa un prompt, espera a que termine, y cierra. Funciona. De aquella manera, pero funciona. Lo tengo en GitHub por si alguien lo quiere.
Y el viernes, con la 2.1.71, Anthropic mete /loop. Un scheduler nativo. Dentro de la propia sesión de Claude Code.
Mi primera reacción fue: «Me han matado el proyecto».
Mi segunda reacción, tras probarlo: «No. Pero casi.»
Qué hace /loop
La sintaxis es directa:
/loop 5m check the deploy status
Eso le dice a Claude Code: «cada 5 minutos, ejecuta este prompt». Sin salir de la sesión. Sin cron. Sin scripts. Claude parsea el intervalo, programa la tarea, y la ejecuta mientras la sesión esté abierta e idle.
Puedes encadenar slash commands:
/loop 20m /review-pr 1234
/loop 1h make test 2>&1 | tail -5
Cada loop tiene un safety net: expira automáticamente a los tres días. Porque un cron olvidado es un clásico de los que duelen.
Para qué lo voy a usar
Llevo un día probándolo y ya tengo tres usos claros:
1. Vigilar tests mientras desarrollo. Estoy en Tokamak, implementando algo gordo (cinco etapas de optimización del cold start, por ejemplo). En vez de hacer make test cada vez que respiro, lanzo:
/loop 10m make test 2>&1 | grep -E "passed|failed"
Si algo se rompe, Claude me avisa sin que yo tenga que mover un dedo.
2. Babysit de un deploy. Cuando pusheo una versión nueva y quiero saber cuándo la CI termina:
/loop 3m gh run list --limit 1
3. Monitorizar la API de estado. Justo hoy he arreglado un bug en Tokamak donde aparecían incidencias de Claude Desktop que no tenían nada que ver con Claude Code. Mientras lo arreglaba, habría sido útil tener:
/loop 5m curl -s https://status.claude.com/api/v2/incidents/unresolved.json | python3 -c "import sys,json; print(len(json.load(sys.stdin)['incidents']), 'incidents')"
Lo que /loop NO es
Y aquí viene la letra pequeña. /loop es un in-session scheduler. Ojo a las implicaciones:
- Muere con la sesión. Cierras la terminal, se acabó. No hay persistencia.
- Solo funciona idle. Si Claude está en medio de una tarea, el loop espera. No interrumpe.
- Tres días máximo. No puedes dejar un loop corriendo una semana.
- Sin estado entre ejecuciones. Cada iteración es un prompt nuevo. No acumula contexto de iteraciones anteriores.
Dicho en cristiano: /loop es un watch con esteroides. No es un cron.
Entonces, para qué el cron
Mi claude-cron hace algo fundamentalmente distinto. Arranca una sesión nueva en headless, ejecuta el prompt, y cierra. No necesita una terminal abierta. No necesita una sesión viva. Va por launchd (o cron, o systemd, lo que tengas) y se ejecuta aunque estés durmiendo.
/loop |
claude-cron |
|
|---|---|---|
| Requiere sesión abierta | Sí | No |
| Sobrevive a cerrar terminal | No | Sí |
| Duración máxima | 3 días | Sin límite |
| Uso ideal | «Vigila esto mientras trabajo» | «Haz esto todas las noches a las 3am» |
| Complejidad | Cero (un comando) | Script + launchd/cron |
Son complementarios. /loop para lo efímero, claude-cron para lo permanente.
Un ejemplo real: tengo un cron que cada noche traduce los posts nuevos de mi blog a cuatro idiomas y los commitea. Eso /loop no puede hacerlo. No voy a dejar una terminal abierta toda la noche para que un loop se acuerde de traducir a las 3am.
Pero si estoy escribiendo un post y quiero que Claude revise la ortografía cada 15 minutos mientras edito… /loop es perfecto. No necesito montar infraestructura para algo que dura una tarde.
El futuro: scheduled tasks
Hay un tercer jugador que va a complicar las cosas: las scheduled tasks de Claude Code y Cowork. Tareas programadas que corren en background, sin sesión, gestionadas por Anthropic. Es lo que causó el incidente del daylight saving time este fin de semana (un infinite loop buscando tareas en la hora que no existía).
Cuando eso madure, probablemente sí que mate a claude-cron. Un scheduler nativo, integrado con la autenticación, sin scripts Bash, sin launchd. Pero eso es futuro. Hoy, las scheduled tasks están en preview y rompen cosas por culpa del horario de verano. Así que mi script Bash seguirá chupando banquillo un poco más.
En resumen
/loop es una herramienta brillante para un caso de uso concreto: tareas recurrentes efímeras dentro de una sesión de trabajo. No reemplaza a un cron, pero elimina la necesidad de uno para el 80% de los casos del día a día.
Mi flujo ahora es: /loop para vigilar cosas mientras trabajo, claude-cron para las tareas nocturnas, y un ojo puesto en las scheduled tasks para cuando Anthropic resuelva lo del horario de verano.
Tres capas de automatización. Cada una en su sitio. A veces la solución no es elegir una herramienta, sino saber cuándo usar cada una.
Read this article in English.



