Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Las tareas programadas requieren Claude Code v2.1.72 o posterior. Verifique su versión con
claude --version./goal.
Las tareas tienen alcance de sesión: viven en la conversación actual y se detienen cuando inicia una nueva. Reanudar con --resume o --continue trae de vuelta cualquier tarea que no haya expirado: una tarea recurrente creada en los últimos 7 días, o una única cuyo tiempo programado aún no ha pasado. Para la programación que sobrevive independientemente de cualquier sesión, utilice Routines, tareas programadas de Desktop o GitHub Actions.
Comparar opciones de programación
Claude Code offers three ways to schedule recurring or one-off work:| Cloud | Desktop | /loop | |
|---|---|---|---|
| Runs on | Anthropic cloud | Your machine | Your machine |
| Requires machine on | No | Yes | Yes |
| Requires open session | No | No | Yes |
| Persistent across restarts | Yes | Yes | Restored on --resume if unexpired |
| Access to local files | No (fresh clone) | Yes | Yes |
| MCP servers | Connectors configured per task | Config files and connectors | Inherits from session |
| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |
| Customizable schedule | Via /schedule in the CLI | Yes | Yes |
| Minimum interval | 1 hour | 1 minute | 1 minute |
Ejecutar un prompt repetidamente con /loop
El/loop bundled skill es la forma más rápida de ejecutar un prompt repetidamente mientras la sesión permanece abierta. Tanto el intervalo como el prompt son opcionales, y lo que proporcione determina cómo se comporta el bucle.
| Lo que proporciona | Ejemplo | Qué sucede |
|---|---|---|
| Intervalo y prompt | /loop 5m check the deploy | Su prompt se ejecuta en un horario fijo |
| Solo prompt | /loop check the deploy | Su prompt se ejecuta en un intervalo que Claude elige en cada iteración |
| Solo intervalo, o nada | /loop | El prompt de mantenimiento integrado se ejecuta, o su loop.md si existe uno |
/loop 20m /review-pr 1234, para volver a ejecutar un flujo de trabajo empaquetado en cada iteración.
Ejecutar en un intervalo fijo
Cuando proporciona un intervalo, Claude lo convierte en una expresión cron, programa el trabajo y confirma la cadencia y el ID del trabajo.30m, o seguirlo como una cláusula como every 2 hours. Las unidades admitidas son s para segundos, m para minutos, h para horas y d para días.
Los segundos se redondean al minuto más cercano ya que cron tiene una granularidad de un minuto. Los intervalos que no se asignan a un paso cron limpio, como 7m o 90m, se redondean al intervalo más cercano que sí lo hace y Claude le dice cuál eligió.
Dejar que Claude elija el intervalo
Cuando omite el intervalo, Claude elige uno dinámicamente en lugar de ejecutarse en un horario cron fijo. Después de cada iteración, elige un retraso entre un minuto y una hora según lo que observó: esperas cortas mientras una compilación se está terminando o un PR está activo, esperas más largas cuando no hay nada pendiente. El retraso elegido y la razón del mismo se imprimen al final de cada iteración. El ejemplo a continuación verifica CI y comentarios de revisión, con Claude esperando más tiempo entre iteraciones una vez que el PR se queda en silencio:/loop dinámico, Claude puede usar la herramienta Monitor directamente. Monitor ejecuta un script de fondo y transmite cada línea de salida, lo que evita el sondeo por completo y a menudo es más eficiente en tokens y más receptivo que volver a ejecutar un prompt en un intervalo.
Un bucle programado dinámicamente aparece en su lista de tareas programadas como cualquier otra tarea, por lo que puede enumerarla o cancelarla de la misma manera. Las reglas de jitter no se aplican a ella, pero el vencimiento de siete días sí: el bucle termina automáticamente siete días después de iniciarlo.
En Bedrock, Vertex AI y Microsoft Foundry, un prompt sin intervalo se ejecuta en un horario fijo de 10 minutos en su lugar.
Ejecutar el prompt de mantenimiento integrado
Cuando omite el prompt, Claude usa un prompt de mantenimiento integrado en lugar de uno que proporcione. En cada iteración, trabaja a través de lo siguiente, en orden:- continuar cualquier trabajo inacabado de la conversación
- cuidar el pull request de la rama actual: comentarios de revisión, ejecuciones de CI fallidas, conflictos de fusión
- ejecutar pasadas de limpieza como búsquedas de errores o simplificación cuando no hay nada más pendiente
/loop simple ejecuta este prompt en un intervalo elegido dinámicamente. Agregue un intervalo, por ejemplo /loop 15m, para ejecutarlo en un horario fijo en su lugar. Para reemplazar el prompt integrado con el suyo propio, consulte Personalizar el prompt predeterminado con loop.md.
En Bedrock, Vertex AI y Microsoft Foundry,
/loop sin prompt imprime el mensaje de uso en lugar de iniciar el bucle de mantenimiento.Personalizar el prompt predeterminado con loop.md
Un archivoloop.md reemplaza el prompt de mantenimiento integrado con sus propias instrucciones. Define un único prompt predeterminado para /loop simple, no una lista de tareas programadas separadas, e se ignora siempre que proporcione un prompt en la línea de comandos. Para programar prompts adicionales junto a él, use /loop <prompt> o pida a Claude directamente.
Claude busca el archivo en dos ubicaciones y usa el primero que encuentra.
| Ruta | Alcance |
|---|---|
.claude/loop.md | Nivel de proyecto. Tiene precedencia cuando ambos archivos existen. |
~/.claude/loop.md | Nivel de usuario. Se aplica en cualquier proyecto que no defina el suyo propio. |
/loop directamente. El siguiente ejemplo mantiene una rama de lanzamiento saludable:
.claude/loop.md
loop.md tienen efecto en la siguiente iteración, por lo que puede refinar las instrucciones mientras un bucle se está ejecutando. Cuando no existe loop.md en ninguna ubicación, el bucle vuelve al prompt de mantenimiento integrado. Mantenga el archivo conciso: el contenido más allá de 25,000 bytes se trunca.
Detener un bucle
Para detener un/loop mientras espera la siguiente iteración, presione Esc. Esto borra el despertar pendiente para que el bucle no se ejecute nuevamente. Las tareas que programó pidiendo a Claude directamente no se ven afectadas por Esc y permanecen en su lugar hasta que las elimine.
En modo de ritmo propio, Claude también puede terminar el bucle por su cuenta al no programar el próximo despertar una vez que la tarea se pueda demostrar que está completa. Los bucles en un intervalo fijo siguen ejecutándose hasta que los detenga o transcurran siete días.
Establecer un recordatorio único
Para recordatorios únicos, describa lo que desea en lenguaje natural en lugar de usar/loop. Claude programa una tarea de un solo disparo que se elimina a sí misma después de ejecutarse.
Gestionar tareas programadas
Pida a Claude en lenguaje natural que enumere o cancele tareas, o haga referencia directamente a las herramientas subyacentes.| Herramienta | Propósito |
|---|---|
CronCreate | Programar una nueva tarea. Acepta una expresión cron de 5 campos, el prompt a ejecutar y si se repite o se ejecuta una sola vez. |
CronList | Enumerar todas las tareas programadas con sus IDs, horarios y prompts. |
CronDelete | Cancelar una tarea por ID. |
CronDelete. Una sesión puede contener hasta 50 tareas programadas a la vez.
Cómo se ejecutan las tareas programadas
El programador verifica cada segundo si hay tareas vencidas y las encola con baja prioridad. Un prompt programado se ejecuta entre sus turnos, no mientras Claude está en medio de una respuesta. Si Claude está ocupado cuando vence una tarea, el prompt espera hasta que termine el turno actual. Todos los tiempos se interpretan en su zona horaria local. Una expresión cron como0 9 * * * significa las 9am donde está ejecutando Claude Code, no UTC.
Jitter
Para evitar que cada sesión golpee la API en el mismo momento de reloj de pared, el programador agrega un desplazamiento determinista a los tiempos de disparo:- Las tareas recurrentes se ejecutan hasta 30 minutos después de la hora programada (o hasta la mitad del intervalo, para tareas que se ejecutan más frecuentemente que cada hora). Un trabajo por hora programado para
:00puede ejecutarse en cualquier momento hasta:30. - Las tareas únicas programadas para la parte superior o inferior de la hora se ejecutan hasta 90 segundos antes.
:00 o :30, por ejemplo 3 9 * * * en lugar de 0 9 * * *, y el jitter único no se aplicará.
Vencimiento de siete días
Las tareas recurrentes expiran automáticamente 7 días después de su creación. La tarea se ejecuta una última vez, luego se elimina a sí misma. Esto limita cuánto tiempo puede ejecutarse un bucle olvidado. Si necesita que una tarea recurrente dure más, cancele y recree antes de que expire, o utilice Routines o tareas programadas de Desktop para programación duradera.Referencia de expresión cron
CronCreate acepta expresiones cron estándar de 5 campos: minute hour day-of-month month day-of-week. Todos los campos admiten comodines (*), valores únicos (5), pasos (*/15), rangos (1-5) y listas separadas por comas (1,15,30).
| Ejemplo | Significado |
|---|---|
*/5 * * * * | Cada 5 minutos |
0 * * * * | Cada hora en punto |
7 * * * * | Cada hora a los 7 minutos |
0 9 * * * | Todos los días a las 9am local |
0 9 * * 1-5 | Días de semana a las 9am local |
30 14 15 3 * | 15 de marzo a las 2:30pm local |
0 o 7 para domingo hasta 6 para sábado. La sintaxis extendida como L, W, ? y alias de nombres como MON o JAN no se admiten.
Cuando tanto el día del mes como el día de la semana están restringidos, una fecha coincide si cualquiera de los campos coincide. Esto sigue la semántica estándar de vixie-cron.
Deshabilitar tareas programadas
EstablezcaCLAUDE_CODE_DISABLE_CRON=1 en su entorno para deshabilitar completamente el programador. Las herramientas cron y /loop dejan de estar disponibles, y cualquier tarea ya programada deja de ejecutarse. Consulte Variables de entorno para la lista completa de banderas de deshabilitación.
Limitaciones
La programación con alcance de sesión tiene limitaciones inherentes:- Las tareas solo se ejecutan mientras Claude Code está ejecutándose e inactivo. Cerrar la terminal o dejar que la sesión salga detiene su ejecución.
- Sin recuperación de disparos perdidos. Si el tiempo programado de una tarea pasa mientras Claude está ocupado en una solicitud de larga duración, se ejecuta una vez cuando Claude queda inactivo, no una vez por intervalo perdido.
- Iniciar una conversación nueva borra todas las tareas con alcance de sesión. Reanudar con
claude --resumeoclaude --continuerestaura tareas que no han expirado: tareas recurrentes dentro de siete días de creación, y tareas únicas cuyo tiempo programado aún no ha pasado. Las tareas de Bash de fondo y monitor nunca se restauran al reanudar.
- Routines: se ejecutan en infraestructura administrada por Anthropic en un horario, mediante llamada a API o en eventos de GitHub
- GitHub Actions: utilice un disparador
scheduleen CI - tareas programadas de Desktop: se ejecutan localmente en su máquina