Claude Code loop: tareas que se repiten mientras trabajas
Haces push. El CI tarda doce minutos. Te pones con otra cosa y, cuando vuelves a mirar, la pipeline lleva veinte minutos en rojo por un test que se rompió en el minuto tres.
O al revés: te quedas refrescando GitHub cada dos minutos, con la cabeza a medias entre la tarea nueva y la anterior.
Las dos opciones son malas. Y la solución está en tu terminal: Claude Code loop, el comando /loop, que repite un prompt mientras tú sigues trabajando en la misma sesión. Lo interesante no es que repita, sino cuánto cuesta cada vuelta, cuándo se para y qué pasa si cierras la terminal.
En corto: /loop ejecuta un prompt o una skill de forma repetida dentro de tu sesión de Claude Code, con un intervalo fijo (/loop 5m …) o con un ritmo que elige el propio Claude. Solo funciona mientras la sesión sigue abierta en tu máquina, cada iteración es un turno que consume tokens y las tareas recurrentes caducan a los 7 días. Para trabajo desatendido con el PC apagado, la herramienta es Routines, no /loop.
¿Qué es /loop en Claude Code?
/loop es una skill incluida en Claude Code que programa un prompt para que se ejecute una y otra vez dentro de la sesión abierta, sobre un planificador local tipo cron.
La documentación oficial de tareas programadas (consultada en octubre de 2026) lo presenta como la forma más rápida de repetir un prompt mientras la sesión sigue abierta. Por debajo, Claude usa tres herramientas: CronCreate, CronList y CronDelete. Las tareas viven en tu Claude Code, no en un servidor.
Sintaxis de Claude Code loop: intervalo fijo, ritmo propio o sin prompt
Lo que escribas detrás de /loop decide cómo se comporta:
| Lo que escribes | Ejemplo | Qué pasa |
|---|---|---|
| Intervalo y prompt | /loop 5m check the deploy |
El prompt corre con un cron fijo |
| Solo prompt | /loop check the deploy |
Claude elige la espera tras cada iteración (entre 1 minuto y 1 hora) |
| Solo intervalo, o nada | /loop |
Corre el prompt de mantenimiento incluido, o tu loop.md |
Las unidades son s, m, h y d. Como el cron tiene granularidad de un minuto, los segundos se redondean hacia arriba, y un intervalo como 7m o 90m se ajusta al más cercano que encaje.
El modo sin intervalo es el más útil. Claude espera poco mientras un build está terminando o una PR tiene actividad, y más cuando no hay nada pendiente. Al final de cada iteración imprime la espera elegida y el motivo.
Con /loop a secas, Claude continúa el trabajo pendiente y atiende la PR de la rama actual. Puedes sustituir ese prompt por el tuyo en .claude/loop.md o ~/.claude/loop.md.
Tres usos de /loop para un developer
Vigilar un deploy o el CI
/loop 5m comprueba si el deploy de staging ha terminado y dime qué ha pasado
O sin intervalo, para que Claude ajuste el ritmo:
/loop comprueba si el CI de mi PR ha pasado y atiende los comentarios de revisión
Revisar PRs cada X minutos
Puedes pasar una skill como prompt. Si tienes una de revisión, por ejemplo /review-pr, se reejecuta en cada vuelta:
/loop 20m /review-pr 1234
Ojo: una ejecución programada solo lanza skills que Claude puede invocar por su cuenta. Los comandos integrados como /model, las skills con disable-model-invocation: true y los prompts MCP le llegan como texto plano.
Esperar a que un servicio responda
Aquí conviene el modo sin intervalo, porque Claude puede cerrar el loop cuando la condición se cumple:
/loop comprueba si http://localhost:3000/health devuelve 200; cuando responda, avísame y termina
En ritmo propio, Claude termina llamando a la herramienta ScheduleWakeup con stop: true. Un loop de intervalo fijo no hace eso: sigue hasta que lo canceles.
Para esperar un evento hay una alternativa mejor: Monitor, que llegó en la v2.1.98. Lanza un script en segundo plano y le pasa a Claude cada línea de salida en cuanto aparece, sin sondear.
La documentación dice que suele ser más eficiente en tokens que reejecutar un prompt, y que Claude puede usarla directamente cuando pides un /loop sin intervalo. El resto del flujo diario lo tienes en cómo usar Claude Code a diario.
Cómo parar un loop de Claude Code
- Ritmo propio: pulsa
Escmientras espera la siguiente iteración. No afecta a tareas que programaste pidiéndoselo a Claude. Si una iteración termina sin reprogramarse ni pararse, Claude Code programa un último despertar unos 20 minutos después y cierra el loop si tampoco ahí se reprograma. - Intervalo fijo: pídelo en lenguaje natural (
cancel the deploy check job) o usaCronDeletecon el ID de 8 caracteres que te daCronList. - Caducidad: las tareas recurrentes caducan a los 7 días. Se ejecutan una última vez y se borran.
- Interruptor general:
CLAUDE_CODE_DISABLE_CRON=1desactiva el planificador y/loop.
Cuánto consume /loop: tokens en cada iteración
Cada iteración es un prompt que entra en tu conversación y Claude lo procesa como cualquier turno, con todo el contexto acumulado detrás.
Aquí entra la caché. Según la documentación de prompt caching, con suscripción la conversación principal usa por defecto un TTL de una hora; con API key, créditos de uso o proveedor cloud, de cinco minutos. Si el hueco entre peticiones supera el TTL, la siguiente reprocesa toda la entrada.
Traducido: si la sesión está quieta entre vueltas, un /loop 15m con API key (o con créditos de uso o proveedor cloud) llega a cada vuelta con la caché caducada y reescribe el contexto entero. Si sigues escribiendo en esa misma sesión, tus turnos la mantienen caliente. Para loops de entre 5 y 60 minutos, sube promptCacheTtl a 1h (v2.1.242 o posterior): las escrituras son más caras, pero cada vuelta lee de caché en lugar de reescribirla.
La otra trampa es el contexto que crece: la vuelta 40 pesa más que la primera, hasta que salta la compactación, que también cuesta. Y si el loop lanza subagentes, revisa por qué sube el coste de los subagentes antes de dejarlo una tarde entera.
Mi regla: intervalo fijo y largo para cosas lentas, ritmo propio cuando el ritmo importa y Monitor cuando lo que esperas es una línea en un log.
/loop, Routines o cron con claude -p: cuál usar
Usa /loop para vigilar algo durante la sesión, Routines para trabajo que tiene que pasar con el portátil cerrado y un cron con claude -p para tareas locales sin sesión abierta.
/loop no compite con Routines. Las Routines corren en la infraestructura de Anthropic, se crean con /schedule y siguen funcionando con el portátil cerrado; lo explico en Claude Code Routines: automatiza agentes sin encender tu PC. Ojo: Routines requiere una suscripción de claude.ai (Pro, Max, Team o Enterprise). Con API key, /schedule no está disponible.
La tercera vía es un cron del sistema que lanza claude -p. La documentación de headless recomienda --permission-prompts none (v2.1.259 o posterior) para trabajos programados sin nadie delante. Si usas la app de escritorio, sus tareas programadas cubren ese hueco sin montar cron, mientras la app esté abierta y el equipo no esté en reposo.
/loop |
Routines (/schedule) |
cron + claude -p |
|
|---|---|---|---|
| Dónde corre | Tu máquina, dentro de la sesión | Nube de Anthropic | Tu máquina, proceso nuevo |
| Máquina encendida | Sí | No | Sí |
| Sesión abierta | Sí | No | No |
| Archivos locales | Sí | No (clon nuevo del repo) | Sí |
| Intervalo mínimo | 1 minuto | 1 hora | El de tu cron |
| Contexto | Comparte la conversación | Sesión nueva por ejecución | Sesión nueva salvo --continue/--resume |
| Limitación o riesgo | Muere al cerrar la terminal; caduca a los 7 días; el contexto crece | Requiere suscripción claude.ai; research preview; límites por hora; actúa con tu identidad de GitHub | Tú gestionas permisos, logs y fallos |
Mi opinión: Claude Code loop es para vigilar algo mientras estás trabajando. En cuanto la tarea tiene que pasar aunque tú no estés, deja de ser un loop y pasa a ser una Routine o un cron.
Lo que dicen los issues de GitHub sobre /loop
Según la documentación, si mandas la sesión a segundo plano, el loop sigue sin terminal. La práctica no siempre acompaña.
En el issue #96531 de anthropics/claude-code, abierto el 23 de septiembre de 2026, un usuario en Windows cuenta que un /loop 3m dejó de dispararse al pasar la sesión a segundo plano. La tarea seguía en CronList, pero solo se ejecutaba justo después de cada mensaje suyo, con huecos de 80 minutos.
El issue #98776 pide exponer las tareas programadas a los hooks porque, según su autor, "A session with an active /loop or a pending CronCreate job looks exactly like an idle one".
Los dos siguen abiertos, igual que el #89248, que reporta loops que se quedan mudos tras una compactación. La lección: no des por vivo un Claude Code loop solo porque lo lanzaste. Compruébalo con CronList.
Límites de /loop: lo que no resuelve
La sesión tiene que seguir abierta. Las tareas solo se disparan con Claude Code en marcha y ocioso. Al reanudar con --resume o --continue vuelven las tareas de CronCreate no caducadas, pero un loop de ritmo propio no: tienes que relanzarlo. Las tareas de Monitor y de Bash en segundo plano no se restauran nunca.
No recupera ejecuciones perdidas. Si Claude está ocupado cuando toca una iteración, se ejecuta una sola vez al quedar libre, no una por cada intervalo perdido.
No es puntual. En intervalo fijo, el planificador añade un desfase: las tareas recurrentes pueden dispararse hasta 30 minutos tarde, o hasta la mitad del intervalo si corren más de una vez por hora. Los loops de ritmo propio no tienen ese desfase.
Cada vuelta cuesta. Tokens por iteración, contexto creciente y caché que caduca si el intervalo supera el TTL. Y como máximo, 50 tareas programadas a la vez por sesión.
Qué hacer hoy con Claude Code loop
La próxima vez que hagas push, no abras GitHub en otra pestaña. Escribe /loop comprueba si el CI de mi PR ha pasado y atiende los comentarios y sigue con lo tuyo.
El flujo completo, de la spec al producto, está en el curso Construye con IA. Y si te preocupa revisar lo que el agente cambia mientras no miras, eso lo trabajamos en el Workshop SDD + Agentic Engineering.
Preguntas frecuentes
¿/loop sigue funcionando si cierro la terminal?
No. Las tareas de /loop son de sesión y solo se disparan mientras Claude Code está en marcha. Mandar la sesión a segundo plano las mantiene según la documentación, aunque hay un issue abierto que reporta fallos. Con el PC apagado, usa Routines.
¿Cuál es el intervalo mínimo de /loop?
Un minuto, porque el planificador usa cron con granularidad de minuto. En modo sin intervalo, Claude elige esperas de entre un minuto y una hora.
¿Cuánto tiempo dura un loop de Claude Code?
Un loop de intervalo fijo dura hasta que lo cancelas o hasta que pasan 7 días. Uno de ritmo propio también caduca a los 7 días, y termina antes si pulsas Esc o si Claude da la tarea por completada.
¿Qué diferencia hay entre /loop y /schedule?
/loop programa tareas dentro de tu sesión local. /schedule crea Routines en la nube, con intervalo mínimo de una hora, que funcionan sin tu máquina pero sin acceso a tus archivos locales: clonan el repo en cada ejecución.
¿/loop gasta tokens aunque no haya cambios?
Sí. Cada iteración es un turno del modelo con el contexto detrás, haya novedades o no. Para esperar un evento concreto, Monitor suele ser más eficiente porque no sondea.
Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.
¿Te resultó útil este artículo?
Compártelo con tu comunidad y ayuda a otros desarrolladores.
