SpyBara
Go Premium

routines.md 2026-11-03 23:58 UTC to 2026-11-04 23:59 UTC

No changes for this document in this history range.

2026
Mon 2 23:57 Tue 3 23:58 Tue 10 21:57 Wed 11 22:59 Fri 13 02:00

Automatizar el trabajo con tareas programadas

Pon Claude Code en piloto automático. Crea tareas programadas, antes llamadas rutinas, que se ejecutan en la nube según un horario, mediante llamadas a la API o ante eventos de GitHub.

[!NOTE]

Las tareas programadas están en vista previa de investigación. El comportamiento, los límites y la superficie de la API pueden cambiar.

Una tarea programada en la nube, antes llamada rutina, es una configuración guardada de Claude Code: un prompt, uno o más repositorios y un conjunto de conectores, empaquetados una vez y ejecutados automáticamente. Las tareas programadas se ejecutan en la infraestructura en la nube administrada por Anthropic, o en el entorno autohospedado de tu organización cuando se enrutan allí, por lo que siguen funcionando cuando tu portátil está cerrada.

Cada tarea programada puede tener uno o más disparadores adjuntos:

  • Horario: se ejecuta con una cadencia recurrente, como cada hora, cada noche o cada semana, o una sola vez en un momento futuro específico
  • API: se activa bajo demanda enviando un POST HTTP al endpoint propio de la tarea con un token de portador
  • GitHub: se ejecuta automáticamente en respuesta a eventos del repositorio, como pull requests o lanzamientos

Una sola tarea programada puede combinar disparadores. Por ejemplo, una tarea de revisión de PR puede ejecutarse cada noche, activarse desde un script de despliegue y también reaccionar a cada nuevo PR.

Una tarea programada no necesita un horario:

  • Una tarea con solo un disparador de API se ejecuta cuando llamas a su endpoint.
  • Una tarea con solo un disparador de GitHub se ejecuta cuando ocurre un evento coincidente en el repositorio.

Las tareas programadas están disponibles en los planes Pro, Max, Ultra, Team y Enterprise. Créalas y adminístralas en claude.ai/code/routines, o desde la CLI con /schedule. El nombre anterior, rutinas, todavía aparece.

[!NOTE]

Otras dos funciones programan trabajo en tu máquina en lugar de en la nube: las tareas programadas de escritorio y /loop. Para elegir entre las tres, consulta Comparar opciones de programación.

Los Owners de Team y Enterprise pueden desactivar las tareas programadas para todos los miembros con el interruptor Scheduled tasks (Was Routines) o Routines en Organization settings > Capabilities > Remote sessions. Cuando el interruptor está desactivado, las tareas programadas existentes dejan de ejecutarse y los miembros no pueden crear nuevas.

Si tu organización Enterprise administra tu acceso con roles personalizados, también necesitas un rol que incluya el permiso de tareas programadas. Un Owner puede agregarlo en la sección Remote sessions de un rol en Organization settings > Roles.

Casos de uso de ejemplo

Cada ejemplo combina un tipo de disparador con el tipo de trabajo para el que las tareas programadas son adecuadas: desatendido, repetible y vinculado a un resultado claro.

  • Mantenimiento del backlog: un disparador de horario se ejecuta cada noche entre semana en tu repositorio, con tu gestor de incidencias agregado como conector. La tarea programada lee las incidencias abiertas desde la última ejecución, aplica etiquetas y asigna responsables según el área de código referenciada. Luego publica un resumen en Slack para que el equipo empiece el día con una cola organizada.
  • Triaje de alertas: tu herramienta de monitoreo llama al endpoint de la API de la tarea programada cuando se supera un umbral de errores, pasando el cuerpo de la alerta como text. El prompt de la tarea le indica a Claude que investigue la alerta del payload de activación, así que extrae el stack trace y lo correlaciona con commits recientes en el repositorio. Luego abre un pull request en borrador con una corrección propuesta y un enlace a la alerta. La persona de guardia revisa el PR en lugar de empezar desde una terminal en blanco.
  • Revisión de código a medida: un disparador de GitHub se ejecuta en pull_request.opened. La tarea programada aplica la lista de verificación de revisión propia de tu equipo y deja comentarios en línea sobre problemas de seguridad, rendimiento y estilo. También agrega un comentario de resumen para que los revisores humanos puedan enfocarse en el diseño en lugar de en verificaciones mecánicas.
  • Verificación de despliegue: tu pipeline de CD llama al endpoint de la API de la tarea programada después de cada despliegue en producción. La tarea ejecuta pruebas de humo contra la nueva compilación, revisa los registros de errores en busca de regresiones y publica un sí o no en el canal de lanzamientos antes de que se cierre la ventana de despliegue.
  • Desfase de documentación: un disparador de horario se ejecuta cada semana. La tarea programada revisa los PR fusionados desde la última ejecución, marca la documentación que hace referencia a API modificadas y abre PR de actualización en el repositorio de documentación para que un editor los revise.
  • Portado de bibliotecas: un disparador de GitHub se ejecuta en pull_request.closed, filtrado a PR fusionados en un repositorio de SDK. La tarea programada porta el cambio a un SDK paralelo en otro lenguaje y abre un PR equivalente, manteniendo ambas bibliotecas sincronizadas sin que una persona reimplemente cada cambio.

Crear una tarea programada

Crea una tarea programada desde la web en claude.ai/code/routines, desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una tarea programada que creas en una aparece en las otras de inmediato. En la pestaña Code de la aplicación de escritorio, haz clic en Scheduled en la barra lateral o en el menú More de la barra lateral, luego en New task, y continúa con Crear desde la web.

Las tareas programadas se ejecutan de forma autónoma como sesiones completas de Claude Code en la nube. La sesión ejecuta comandos de shell, usa skills y llama a cualquier conector que incluyas. Fuera de los hilos de un proyecto, esos skills incluyen los que están en commits del repositorio clonado. No eliges un modo de permisos al crear la tarea: consulta Solicitudes de permiso durante una ejecución para saber cuándo una ejecución se detiene a esperarte.

Lo que una tarea programada puede alcanzar está determinado por:

  • Los repositorios que selecciones
  • El acceso a la red y las variables del entorno
  • Los conectores que incluyas

Limita cada uno de ellos a lo que la tarea necesita.

Las tareas programadas pertenecen a tu cuenta individual de claude.ai. No se comparten con tus compañeros de equipo y sus ejecuciones cuentan contra los límites y el uso de tu cuenta. Todo lo que una tarea programada hace a través de tu identidad de GitHub conectada o de tus conectores aparece como hecho por ti. Los commits y los pull requests llevan tu usuario de GitHub, y los mensajes de Slack, los tickets de Linear u otras acciones de conectores usan tus cuentas vinculadas en esos servicios.

Crear desde la web

1. Abrir el diálogo de creación

Ve a claude.ai/code/routines y haz clic en New task para abrir el diálogo New scheduled task. Revisa si aparece alguna de estas pantallas antes de continuar:

  • Si el botón dice New routine en lugar de New task, haz clic en New routine y continúa con Formulario de página completa.
  • En la aplicación de escritorio, si se abre un menú con Local y Cloud, ve a Formulario de página completa.
  • Si se abre un menú con Create with Claude y Set up manually, selecciona Set up manually para abrir el diálogo. Create with Claude te permite, en cambio, describir la tarea en un chat y que Claude la cree.
  • Si se abre una página completa en lugar del diálogo, ve a Formulario de página completa.

Si Repositories y Environment ya aparecen al abrirse el diálogo, consulta en qué se diferencia ese diálogo. En caso contrario, este diálogo también crea tareas programadas para el chat de claude.ai. Para que la tuya sea lo que el diálogo llama una tarea de Claude Code, selecciona un repositorio o agrega un disparador de evento de GitHub o de API en los pasos siguientes. Ese tipo de tarea ejecuta Claude Code en una sesión en la nube.

2. Nombrar la tarea y escribir el prompt

Dale a la tarea programada un nombre descriptivo y escribe el prompt que Claude ejecuta cada vez. El prompt es la parte más importante: la tarea se ejecuta de forma autónoma, por lo que el prompt debe ser autosuficiente y explícito sobre qué hacer y cómo se ve el éxito.

Cuando se activa un disparador, la sesión recibe el prompt guardado como su tarea asignada y la lleva a cabo, en lugar de tratarlo como contenido no confiable que llegó a mitad de la conversación. El disparador solo atestigua que el prompt fue almacenado con anticipación por una sesión autorizada en tu cuenta. Por lo tanto, el prompt activado no es entrada de usuario en vivo y no puede actuar como aprobación o consentimiento para acciones durante la ejecución. El contenido que la sesión obtiene durante la ejecución mantiene su tratamiento normal.

3. Seleccionar un disparador

En la fila Trigger, elige cómo se inicia la tarea. Para combinar varios disparadores, haz clic en + al final de la fila.

[tab] Schedule

Elige una frecuencia preestablecida para una ejecución recurrente. Consulta Agregar un disparador de horario para conocer el manejo de zonas horarias, los inicios con retraso, los intervalos cron personalizados y las ejecuciones únicas.

[tab] GitHub event

Selecciona el repositorio, el evento al que reaccionar y filtros opcionales. Consulta Agregar un disparador de GitHub para ver la lista completa de eventos admitidos y campos de filtro.

[tab] API

Selecciona API aquí. Cuando hagas clic en Create, el diálogo API token muestra el token una sola vez, así que cópialo antes de cerrar el diálogo. Consulta Agregar un disparador de API para copiar la URL o generar un nuevo token.

4. Seleccionar repositorios

Expande Advanced settings. En Repository, en la pestaña General, selecciona uno o más repositorios de GitHub para que Claude trabaje en ellos.

Cada repositorio se clona al inicio de una ejecución. Claude crea ramas con el prefijo claude/ para sus cambios.

5. Seleccionar un entorno

Después de seleccionar un repositorio, aparece Cloud environment debajo. Elige un entorno en la nube para la tarea. Si ya hay un entorno seleccionado, puedes conservarlo o seleccionar otro. Los entornos controlan a qué tiene acceso la sesión en la nube:

  • Network access: establece el nivel de acceso a Internet disponible durante cada ejecución
  • Environment variables: proporciona valores que Claude puede usar durante cada ejecución. Son visibles para cualquiera que use el entorno, por lo que en un entorno alojado por Anthropic, almacena las claves de las API que Claude llama durante una ejecución como secretos de red en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto
  • Setup script: instala las dependencias y herramientas que la tarea necesita. El resultado se almacena en caché, por lo que el script no se vuelve a ejecutar en cada sesión

Se proporciona un entorno Default con acceso a la red Trusted, que permite solo la lista de permitidos predeterminada de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes a través de la red de la sesión. Los conectores que agregas a la tarea llegan a sus servicios a través de los servidores de Anthropic, por lo que no necesitan cambios en la lista de permitidos.

Si tu tarea necesita llegar directamente a tus propios servicios, o a un dominio fuera de esa lista, edita el acceso a la red del entorno antes de ejecutarla. Para usar un entorno separado, crea uno primero.

6. Seleccionar un modelo y un nivel de esfuerzo

Selecciona un modelo en el selector de modelo de la entrada del prompt para que Claude lo use en cada ejecución. En una tarea de Claude Code, si el modelo ofrece niveles de esfuerzo, Effort en el mismo selector muestra el nivel actual. Para cambiarlo, selecciona otro nivel. La opción Default del selector no ofrece niveles.

7. Revisar conectores

Cambia a la pestaña Connectors de Advanced settings. Todos tus conectores MCP conectados se incluyen de forma predeterminada. Elimina los que la tarea no necesite: Claude puede usar un conector incluido durante una ejecución, incluidas las escrituras. Para saber cuándo una ejecución se detiene a preguntarte primero, consulta Solicitudes de permiso durante una ejecución.

8. Crear la tarea

Haz clic en Create. El diálogo se cierra y se abre la página de detalles de la nueva tarea. La tarea se ejecuta la próxima vez que uno de sus disparadores coincida. Para iniciar una ejecución de inmediato, haz clic en Run now en la página de detalles.

Para ver qué hizo una ejecución, haz clic en ella en la lista History de la página de detalles. La ejecución se abre como una sesión completa, una nueva para cada ejecución, donde puedes ver qué hizo Claude, revisar los cambios y crear un pull request.

Diálogo con Repositories y Environment en la vista principal

Sigue los pasos para crear desde la web y completa cada campo en la vista principal del diálogo en lugar de en Advanced settings. Este diálogo crea solo tareas de Claude Code.

Selecciona el repositorio antes de agregar un disparador de evento de GitHub, porque ese disparador no está disponible hasta que se selecciona un repositorio.

Formulario de página completa

En la aplicación de escritorio, si se abre un menú con Local y Cloud, selecciona Cloud. Se abre una página titulada New routine o New scheduled task. Completa sus campos:

  • Name: escribe uno.
  • Instructions: escribe el prompt. En el mismo cuadro, selecciona el modelo, el nivel de esfuerzo si el modelo lo ofrece, los repositorios y el entorno. Para saber qué controla cada uno, consulta los pasos de Crear desde la web.
  • Select a trigger: selecciona Schedule, GitHub event o API. Para un horario, consulta Agregar un disparador de horario. Para un evento de GitHub, selecciona un repositorio. Para un disparador de API, copia el token del diálogo API token que se abre después de hacer clic en Create, porque se muestra una sola vez. Para combinar varios disparadores, haz clic en Add another trigger.
  • Connectors: todos tus conectores conectados se incluyen de forma predeterminada, así que elimina los que la tarea no necesite.

Si Create no está disponible, pasa el cursor sobre él para ver qué le falta aún al formulario. Haz clic en Create y se abre la página de detalles de la tarea.

Crear desde la CLI

Ejecuta /schedule en cualquier sesión para crear una tarea programada de forma conversacional. También puedes pasar una descripción directamente, para una tarea recurrente como /schedule daily PR review at 9am o una única como /schedule clean up feature flag in one week. Claude recorre la misma información que recopila el diálogo web y luego guarda la tarea en tu cuenta. El comando también está disponible con el alias /routines.

Un inicio correcto se ve como una conversación: Claude hace preguntas de seguimiento sobre el horario, los repositorios y el prompt antes de guardar. Si en cambio Claude responde que necesitas autenticarte o que no puede conectarse a tu cuenta remota de claude.ai, no se creó ninguna tarea programada; consulta Solución de problemas.

Una tarea que creas con /schedule tiene un disparador de horario. También puedes agregar los otros tipos de disparadores:

  • Disparador de API: edita la tarea en la web en claude.ai/code/routines
  • Disparador de GitHub: edita la tarea en la web, o pídeselo a Claude en la CLI. Agregarlo desde la CLI requiere Claude Code v2.1.225 o posterior

Una tarea programada sin disparador de horario, como una que solo se inicia mediante llamadas a la API o eventos de GitHub, no tiene hora de próxima ejecución. La CLI no muestra ninguna cuando Claude la guarda o la actualiza.

Configurar disparadores

Una tarea programada se inicia cuando uno de sus disparadores coincide. Agrega o elimina los disparadores de una tarea en cualquier momento en la fila Trigger del diálogo de edición de la tarea.

Cuando una tarea tiene dos o más disparadores, cada uno tiene un icono de papelera en ese diálogo. Para eliminar un disparador de horario o de evento de GitHub, haz clic en su icono de papelera y luego en Save changes. Para eliminar un disparador de API, elimina su token en su lugar.

Agregar un disparador de horario

Un disparador de horario ejecuta la tarea con una cadencia recurrente, o una sola vez en un momento futuro específico. En el diálogo de creación o edición de la tarea en la web, elige una frecuencia preestablecida, como cada hora, diaria o semanal:

  • Ejecuciones en punto: si programas una ejecución exactamente en punto, como a las 9:00, puede comenzar varios minutos tarde. Para comenzar cerca de la hora programada, elige unos minutos después de la hora, por ejemplo 9:07.
  • Intervalos personalizados: para una cadencia que no ofrecen los preestablecidos, crea la tarea y selecciona Custom en su diálogo de edición. Luego ingresa una expresión cron, como 0 */2 * * * para cada dos horas. Para establecer una desde la CLI, ejecuta /schedule update. Las expresiones que se ejecutan con más frecuencia que una vez por hora se rechazan.
  • Zona horaria: cuando elijas una frecuencia preestablecida, ingresa la hora en tu zona horaria local.
  • Zona horaria de la expresión cron: cuando la expresión consta solo de cinco campos, escribe las horas en UTC, de modo que 0 9 * * 1-5 se ejecuta a las 9:00 AM UTC los días laborables. Si el campo comienza con un prefijo CRON_TZ=, consérvalo y escribe las horas en su zona, o elimínalo y escríbelas en UTC.

Programar una ejecución única

Una programación única ejecuta la tarea una sola vez en una marca de tiempo específica. Por ejemplo, úsala para:

  • Recordarte algo más adelante en la semana
  • Abrir un PR de limpieza después de que termine un despliegue gradual
  • Iniciar trabajo de seguimiento después de que se publique un cambio upstream

Después de que la tarea se ejecuta, se desactiva sola y la interfaz web la marca como Completed. Para ejecutarla de nuevo, abre el diálogo de edición de la tarea en la web y selecciona One-time u Once, según la etiqueta que muestre tu diálogo. Luego establece una nueva fecha y hora en tu zona horaria local y guarda.

Crea una ejecución única desde la CLI describiendo la hora en lenguaje natural. Claude interpreta la frase en relación con la hora actual y confirma la marca de tiempo absoluta antes de guardar.

/schedule tomorrow at 9am, summarize yesterday's merged PRs
/schedule in 2 weeks, open a cleanup PR that removes the feature flag

Las ejecuciones únicas cuentan contra el mismo límite por hora que otras ejecuciones programadas. Consulta Uso y límites para obtener detalles.

Agregar un disparador de API

Un disparador de API le da a una tarea programada un endpoint HTTP dedicado. Enviar un POST al endpoint con el token de portador de la tarea inicia una nueva sesión y devuelve una URL de sesión. Úsalo para conectar Claude Code a sistemas de alertas, pipelines de despliegue, herramientas internas o cualquier lugar desde el que puedas hacer una solicitud HTTP autenticada.

Agrega un disparador de API en la web, ya sea mientras creas la tarea o más tarde con los pasos siguientes. No puedes agregar un disparador de API ni administrar su token desde la CLI.

1. Abrir la tarea para editarla

Ve a claude.ai/code/routines, haz clic en la tarea programada que quieres activar mediante la API, luego abre el menú junto a su nombre y selecciona Edit. Se abre el diálogo Edit scheduled task.

2. Agregar un disparador de API

En la fila Trigger, haz clic en + y selecciona API en el menú que se abre. Aparece un panel con la Fire URL y el Token de esta tarea.

3. Copiar la URL y generar un token

Copia la Fire URL. Haz clic en Generate token y copia de inmediato el token del diálogo Token generated. El token se muestra una sola vez y no se puede recuperar más tarde, así que guárdalo en un lugar seguro, como el almacén de secretos de tu herramienta de alertas.

El disparador de API entra en vigor en cuanto generas el token. No necesitas hacer clic en Save changes, así que cierra el diálogo cuando termines.

4. Llamar al endpoint

Envía el token en el encabezado Authorization: Bearer cuando hagas POST a la URL. Activar una tarea programada muestra un ejemplo completo.

Cada tarea programada tiene su propio token, limitado a activar solo esa tarea. Para desactivar el acceso por API o rotar el token, abre de nuevo el diálogo Edit scheduled task de la tarea. Ambos controles están junto al token en el panel del disparador de API y entran en vigor de inmediato:

  • Desactivar el acceso por API: haz clic en Delete token, el icono de papelera junto a Regenerate. Esto elimina el disparador de API
  • Rotar el token: haz clic en Regenerate. El token anterior deja de funcionar y el diálogo Token generated muestra el nuevo una sola vez

Activar una tarea programada

Envía una solicitud POST al endpoint /fire con el token de portador en el encabezado Authorization. El cuerpo de la solicitud acepta un campo text opcional para contexto específico de la ejecución, como el cuerpo de una alerta o un registro con fallos, que se pasa a la tarea junto con su prompt guardado. El valor es texto libre y no se analiza: si envías JSON u otro payload estructurado, la tarea lo recibe como una cadena literal.

El valor text no llega a la rutina como un mensaje sin más. Llega envuelto en un bloque <routine-fire-payload> que lo etiqueta como datos no confiables y le indica a Claude que no siga instrucciones dentro de él a menos que el propio prompt de la rutina lo indique. El mismo envoltorio se aplica al texto proporcionado con Run now en la interfaz web.

Esto significa que el prompt guardado de una rutina debe habilitar explícitamente la actuación sobre el texto de activación: escribe el prompt para que haga referencia explícita al payload, por ejemplo "Investiga la alerta descrita en el bloque routine-fire-payload", o la rutina tratará el texto como contexto inerte. Cualquiera que tenga el token de portador puede enviar text, así que el envoltorio hace que el texto de activación enviado con un token filtrado llegue etiquetado como datos no confiables en lugar de como instrucciones directas para tu rutina.

El ejemplo siguiente activa una tarea programada desde un shell. El ID de la tarea y el token mostrados son marcadores de posición: reemplázalos por la URL y el token que copiaste al agregar el disparador de API, o la solicitud fallará con un error de autenticación 401:

curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \
  -H "Authorization: Bearer sk-ant-oat01-xxxxx" \
  -H "anthropic-beta: experimental-cc-routine-2026-04-01" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'

Una solicitud correcta devuelve un cuerpo JSON con el ID y la URL de la nueva sesión:

{
  "type": "routine_fire",
  "claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
  "claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}

Abre la URL de la sesión en un navegador para ver la ejecución en tiempo real, revisar los cambios o continuar la conversación manualmente.

[!WARNING]

El endpoint /fire se publica bajo el encabezado beta experimental-cc-routine-2026-04-01. Las formas de solicitud y respuesta, los rate limits y la semántica de los tokens pueden cambiar mientras la función está en vista previa de investigación. Los cambios incompatibles se publican bajo nuevas versiones fechadas del encabezado beta, y las dos versiones anteriores más recientes del encabezado siguen funcionando para que quienes llaman tengan tiempo de migrar.

Referencia de la API

Para la referencia completa de la API, incluidas todas las respuestas de error, reglas de validación y límites de campos, consulta Trigger a routine through the API en la documentación de Claude Platform.

El endpoint /fire está disponible solo para usuarios de claude.ai y no forma parte de la superficie de la API de Claude Platform.

Agregar un disparador de GitHub

Un disparador de GitHub inicia automáticamente una nueva sesión cuando ocurre un evento coincidente en un repositorio conectado. Claude Code no reutiliza sesiones entre eventos, por lo que dos actualizaciones de un PR producen dos sesiones independientes.

[!NOTE]

Los eventos de webhook de GitHub están sujetos a límites por hora por tarea y por cuenta. Los eventos que superan el límite se descartan hasta que se reinicia la ventana.

La aplicación Claude GitHub App debe estar instalada en el repositorio al que quieres suscribirte, sea cual sea la superficie desde la que configures el disparador.

  • Configura los disparadores de GitHub desde la interfaz web, que te pide instalar la aplicación cuando falta. Sigue los pasos siguientes para configurar uno en la web.
  • Desde la CLI, instala primero la aplicación desde la página de la GitHub App y luego pídele a Claude que adjunte un disparador de GitHub a una tarea programada existente, por ejemplo /schedule add a GitHub trigger to my nightly review for pull requests opened in acme/webapp. La vía de la CLI requiere Claude Code v2.1.225 o posterior. Cuando Claude agrega el disparador, responde con un enlace a la tarea que activa el disparador.

1. Abrir la tarea para editarla

Ve a claude.ai/code/routines, haz clic en la tarea programada, luego abre el menú junto a su nombre y selecciona Edit. Se abre el diálogo Edit scheduled task.

2. Agregar un disparador de evento de GitHub

En la fila Trigger, haz clic en + y selecciona GitHub event en el menú que se abre.

[!NOTE]

Ejecutar /web-setup en la CLI otorga acceso al repositorio para clonarlo, pero no instala la Claude GitHub App ni habilita la entrega de webhooks.

3. Configurar el disparador

Cambia el repositorio si es necesario, elige un evento de la lista de eventos admitidos y, opcionalmente, agrega filtros. Luego haz clic en Save changes en la parte inferior del diálogo para aplicar el disparador.

Eventos admitidos

Elige un evento de cualquiera de las siguientes categorías. Dentro de cada categoría, puedes elegir una acción específica, como pull_request.opened, o reaccionar a todas las acciones de la categoría.

Evento Se activa cuando
Pull request Se abre, cierra, asigna, etiqueta, sincroniza o actualiza de otra manera un PR
Lanzamiento Se crea, publica, edita o elimina un lanzamiento
Issue Se abre, edita, cierra, reabre, etiqueta, asigna o actualiza de otra manera un issue

Filtrar pull requests

Usa filtros para acotar qué pull requests inician una nueva sesión. Todas las condiciones de filtro deben coincidir para que la tarea programada se active. Los campos de filtro disponibles son:

Filtro Coincide con
Autor Nombre de usuario de GitHub del autor del PR
Título Texto del título del PR
Cuerpo Texto de la descripción del PR
Rama base Rama a la que apunta el PR
Rama head Rama de la que proviene el PR
Etiquetas Etiquetas aplicadas al PR
Es borrador Si el PR está en estado de borrador
Está fusionado Si el PR ha sido fusionado

Cada filtro combina un campo con un operador: es igual a, contiene, comienza con, es uno de, no es uno de o coincide con regex.

El operador matches regex evalúa el valor completo del campo, no una subcadena dentro de él. Para coincidir con cualquier título que contenga hotfix, escribe .*hotfix.*. Sin los .* alrededor, el filtro solo coincide con un título que sea exactamente hotfix, sin nada antes ni después. Para buscar una subcadena literal sin sintaxis de regex, usa el operador contains en su lugar.

Algunos ejemplos de combinaciones de filtros:

  • Revisión del módulo de autenticación: rama base main, rama head contiene auth-provider. Envía cualquier PR que toque la autenticación a un revisor especializado.
  • Solo listos para revisión: es borrador es false. Omite los borradores para que la tarea solo se ejecute cuando el PR esté listo para revisión.
  • Backport condicionado por etiqueta: las etiquetas incluyen needs-backport. Activa una tarea de portado a otra rama solo cuando un mantenedor etiqueta el PR.

Administrar tareas programadas

Haz clic en una tarea programada de la lista para abrir su página de detalles. La página de detalles muestra los repositorios, conectores, prompt, horario, tokens de API y disparadores de GitHub de la tarea, y una lista de ejecuciones anteriores.

Ver e interactuar con ejecuciones

Haz clic en cualquier ejecución para abrirla como una sesión completa. Desde allí puedes ver qué hizo Claude, revisar los cambios, crear un pull request o continuar la conversación. Cada sesión de ejecución funciona como cualquier otra sesión: usa el menú desplegable junto al título de la sesión para cambiarle el nombre, archivarla o eliminarla.

En History, en la página de detalles de la tarea, la fila de cada ejecución finalizada termina con Error si la ejecución falló, con Cancelled si se canceló, y sin ninguna de esas palabras si tuvo éxito. El filtro Status llama a esos mismos tres resultados Failed, Cancelled y Succeeded. Estos resultados indican cómo terminó la sesión, no si Claude completó el trabajo que describe tu prompt, así que abre la ejecución y lee su transcripción para ver qué sucedió.

  • Succeeded: la sesión terminó sin que Claude Code informara un fallo. Las solicitudes de red bloqueadas, las herramientas de conectores faltantes y el trabajo que Claude no pudo completar aparecen en la transcripción y no en la fila
  • Failed: la sesión no terminó normalmente. Por ejemplo, se detuvo inesperadamente, terminó con un error o se archivó antes de que comenzara la ejecución
  • Cancelled: la ejecución no falló y su sesión se archivó. Si archivas la sesión de una ejecución que tuvo éxito, la ejecución cambia a Cancelled. No es necesario cambiar nada en la tarea

Si aparece una advertencia en History, consulta Advertencias «The last run».

Editar y controlar tareas programadas

Desde la página de detalles puedes:

  • Hacer clic en Run now para iniciar una ejecución de inmediato sin esperar a la próxima hora programada.
  • Usar el interruptor de encendido/apagado en la parte superior de la página para pausar o reanudar el horario. Las tareas pausadas conservan su configuración, pero no se ejecutan hasta que las vuelvas a activar.
  • Abrir el menú junto al nombre de la tarea y seleccionar Edit para cambiar el nombre, el prompt, los repositorios, el entorno, los conectores o cualquiera de los disparadores de la tarea. El diálogo Edit scheduled task se abre con el mismo diseño que el diálogo de creación. Para agregar un disparador, haz clic en + en la fila Trigger. Haz clic en Save changes para aplicar tus cambios. Las acciones sobre tokens de API entran en vigor de inmediato, sin Save changes.
  • Abrir el mismo menú y seleccionar Delete para eliminar la tarea.

Administrar tareas programadas desde la CLI

Ejecuta /schedule list para ver tus tareas programadas, /schedule update para cambiar una o /schedule run para iniciar una de inmediato.

También puedes preguntar por el historial de ejecuciones de una tarea programada, por ejemplo /schedule why did my nightly review do nothing this morning?. Claude enumera las ejecuciones recientes de la tarea con su estado y un enlace para abrir cada ejecución en la web. También lee el registro de una ejecución para explicar qué sucedió, incluidos errores de herramientas, denegaciones de permisos y el resultado final. Requiere Claude Code v2.1.227 o posterior.

Repositorios y permisos de rama

Las tareas programadas necesitan acceso a GitHub para clonar repositorios. Cuando creas una tarea programada desde la CLI con /schedule, Claude verifica si tu cuenta tiene acceso a GitHub para el repositorio desde el que la ejecutaste. Si no lo tiene, Claude agrega una nota de configuración indicando cómo otorgarlo.

[!NOTE]

Consulta Opciones de autenticación de GitHub para conocer las dos formas de otorgar acceso. En los planes Team y Enterprise, un Owner de tu organización de Claude tiene que activar cada método antes de que puedas usarlo; consulta Conectar GitHub.

Si tu conexión a GitHub falta o ha caducado cuando corresponde una ejecución, la tarea programada omite ejecuciones hasta que vuelvas a conectarte, durante un máximo de 72 horas. Vuelve a conectar GitHub dentro de ese plazo y la tarea se reanuda sola. Después de 72 horas sin conexión, la tarea se desactiva, y tú la vuelves a activar después de reconectar GitHub.

Cada repositorio que agregas se clona en cada ejecución. Claude comienza desde la rama predeterminada del repositorio a menos que tu prompt indique lo contrario. Si un evento de pull request de GitHub dispara la ejecución y el repositorio del pull request es el primer repositorio de la tarea, ese repositorio comienza en cambio desde el commit head del pull request.

Claude envía su trabajo a una rama con el prefijo claude/ a menos que tu prompt le indique enviarlo a otra rama. Para controlar a qué ramas puede enviar una ejecución, usa reglas de protección de ramas o rulesets en GitHub. Para las ejecuciones en infraestructura administrada por Anthropic, y para las ejecuciones autohospedadas que envían a través del proxy de git de Anthropic, GitHub las aplica al acceso a GitHub que conectaste, por lo que una regla que ese acceso puede omitir no bloquea el envío de una ejecución. Una ejecución autohospedada que envía con las credenciales de git que proporciona tu despliegue se verifica en cambio contra esas credenciales. Consulta Configurar git.

Conectores

Las tareas programadas pueden usar tus conectores MCP conectados para leer y escribir en servicios externos durante cada ejecución. Por ejemplo, una tarea que clasifica solicitudes de soporte podría leer de un canal de Slack y crear incidencias en Linear.

Los conectores son las integraciones de claude.ai de tu cuenta. Los servidores MCP que agregaste localmente en la CLI con claude mcp add se almacenan en tu máquina y no en tu cuenta de claude.ai, por lo que no aparecen en la lista de conectores. Para usar uno de esos servidores en una tarea programada:

  • Como conector: agrégalo como conector en claude.ai/customize/connectors
  • En el repositorio: para una tarea programada con un solo repositorio, puedes en cambio declarar el servidor en un .mcp.json incluido en un commit, a menos que la tarea se ejecute como hilos en un proyecto. Si la tarea se ejecuta como hilos en un proyecto, agrega el servidor como conector.

Cuando creas una tarea programada, todos tus conectores conectados actualmente se incluyen de forma predeterminada. Elimina los que no sean necesarios para limitar a qué herramientas tiene acceso Claude durante la ejecución. También puedes agregar conectores directamente desde el diálogo de creación o edición de la tarea.

Para administrar o agregar conectores fuera de ese diálogo, visita claude.ai/customize/connectors o usa /schedule update en la CLI.

Solicitudes de permiso durante una ejecución

[!NOTE]

Para una tarea que se ejecuta en el entorno autohospedado de tu organización, consulta Permisos y aprobación de herramientas.

Cuando una ejecución inicia una nueva sesión en la nube de Anthropic, esa sesión comienza en modo automático a menos que el modo automático no esté disponible. En modo automático, un modelo clasificador permite o bloquea las acciones que de otro modo esperarían tu aprobación.

Una ejecución aún se detiene y espera una respuesta en casos como estos:

  • Acciones que piden confirmación incluso en modo automático: por ejemplo, una acción que coincide con una regla ask. Consulta Cómo evalúa las acciones el modo automático
  • Bloqueos repetidos: un solo bloqueo no termina la ejecución. Una vez que los bloqueos alcanzan los umbrales de bloqueos repetidos del modo automático, aparece una solicitud de permiso en la sesión de la ejecución y espera hasta que alguien la responda

Si el modo automático no está disponible, por ejemplo cuando tu organización lo desactivó o el modelo de la tarea no lo admite, la ejecución conserva el modo de permisos con el que se inició. Para responder a una solicitud en espera, abre la ejecución desde la página de detalles de la tarea.

En un proyecto, una ejecución puede continuar un hilo en lugar de iniciar una nueva sesión. Esa ejecución conserva el modo de permisos en el que esté el hilo en ese momento. Cuando se creó ese hilo, comenzó en modo automático a menos que el modo automático no estuviera disponible. Para responder a una solicitud que espera en ese hilo, consulta Desbloquear un hilo que espera aprobación.

Cuando una ejecución publica un artefacto sin preguntar

Durante una ejecución en modo automático, Claude publica un artefacto sin preguntarte una vez que el clasificador permite la publicación. Aun así, se te pregunta primero cuando, por ejemplo, la publicación coincide con una regla ask. Un nuevo artefacto solo es visible para ti hasta que lo compartas. Las reglas de Accept edits que siguen no se aplican en modo automático.

Cuando el trabajo de una tarea programada es mantener una página actualizada, dale un artefacto que ya hayas publicado.

Artefactos en el modo Accept edits

Cuando el horario de una tarea programada o Run now inicia una ejecución, Claude puede publicar un nuevo artefacto sin preguntar. El nuevo artefacto solo es visible para ti hasta que lo compartas. Si la publicación declara capacidades de tiempo de ejecución para la página, como llamadas a conectores o descargas de archivos, Claude pregunta primero.

En esas ejecuciones, Claude vuelve a publicar un artefacto existente sin preguntar solo cuando se cumplen todas estas condiciones:

  • Puedes editar el artefacto y pertenece a tu propia organización
  • Si la publicación incluye más que la página, como archivos de soporte, eres propietario del artefacto
  • El artefacto no está compartido públicamente
  • Si el artefacto está compartido con personas específicas o con tu organización, sus lectores no ven automáticamente cada nueva versión
  • La publicación no sobrescribe forzosamente una versión más reciente
  • La publicación no declara capacidades de tiempo de ejecución para la página
  • La página existente no tiene ningún permiso concedido que vaya más allá de la página, como llamadas a conectores

En cualquier otro caso, incluida una ejecución iniciada por un disparador de API o de GitHub, Claude pregunta primero.

Entornos y acceso a la red

Cada tarea programada usa un entorno en la nube que controla el acceso a la red, las variables de entorno y los scripts de configuración. La tarea hereda la política de red del entorno en cada ejecución.

El entorno Default usa acceso a la red Trusted, que permite solo la lista de permitidos predeterminada a través de la red de la sesión. Las solicitudes por esa vía a hosts fuera de la lista de permitidos fallan con 403 y x-deny-reason: host_not_allowed. El tráfico de los conectores MCP se enruta a través de los servidores de Anthropic y no por esa vía, por lo que los conectores que agregas a la tarea funcionan sin agregar sus hosts a Allowed domains. Elimina los conectores que no necesites en Conectores.

Para permitir dominios adicionales en uno de tus propios entornos, sigue estos pasos. Un entorno compartido por la organización se abre en modo de solo lectura aquí, por lo que un Owner cambia su acceso a la red desde la página Cloud environments en la configuración de administración en su lugar.

1. Abrir la tarea para editarla

Ve a claude.ai/code/routines, haz clic en la tarea programada, luego abre el menú junto a su nombre y selecciona Edit. Se abre el diálogo Edit scheduled task.

2. Abrir el selector de entorno

Ve a Advanced settings > General > Cloud environment, expandiendo primero Advanced settings si está contraído. Haz clic en el icono de nube que muestra el nombre de tu entorno, como Default.

3. Abrir la configuración del entorno

Pasa el cursor sobre el entorno en la lista y haz clic en el icono de configuración que aparece a la derecha.

4. Cambiar el nivel de acceso a la red

En el diálogo Edit cloud environment, cambia Network access a Custom e ingresa tus dominios en Allowed domains. Marca Also include default list of common package managers para mantener la lista de permitidos predeterminada junto con tus dominios personalizados. Selecciona Full en su lugar para tener acceso sin restricciones.

5. Guardar

Haz clic en Save changes en el diálogo Edit cloud environment y luego cierra el diálogo Edit scheduled task que está detrás. La nueva política se aplica desde la próxima ejecución.

Consulta Acceso a la red para obtener detalles sobre los niveles de acceso y la lista de permitidos predeterminada.

Uso y límites

Las tareas programadas consumen el uso de la suscripción de la misma manera que las sesiones interactivas. Consulta tu consumo actual en claude.ai/settings/usage.

Aparte del uso de la suscripción, cada forma de iniciar una ejecución tiene un límite por hora:

Acción Límite Se cuenta para Por encima del límite
Ejecuciones programadas, incluidas las ejecuciones únicas 100 por hora Tu cuenta La ejecución espera hasta que se reinicie el límite
Run now, activaciones por API y configurar una tarea única para que se ejecute de nuevo 30 por hora Cada tarea programada, un conteo compartido por las tres La acción falla hasta que se reinicie el límite
Run now y configurar una tarea única para que se ejecute de nuevo 100 por hora Tu cuenta Igual
Activaciones por API 100 por hora Tu cuenta, contadas por separado de Run now Igual
Eventos de GitHub Consulta Agregar un disparador de GitHub

Ninguno de estos límites por hora admite excedentes.

Cuando una tarea programada alcanza el límite de uso de tu suscripción, las organizaciones con créditos de uso activados pueden seguir ejecutando tareas programadas con excedente medido. Sin créditos de uso, las ejecuciones adicionales se rechazan hasta que se reinicie tu ventana de uso. Activa los créditos de uso en claude.ai/settings/usage. En los planes Team y Enterprise, un administrador los activa para la organización en claude.ai/admin-settings/usage.

Mientras tu suscripción está en pausa, tus tareas programadas quedan en espera y no se ejecutan. Cuando tu suscripción vuelva a estar activa, vuelve a activarlas.

Dónde sigue apareciendo el nombre rutinas

Las tareas programadas se llamaban antes rutinas, y estos lugares conservan el nombre anterior. Cada uno se refiere a la misma función:

  • App: en algunas cuentas, la entrada de la barra lateral y el título de la página dicen Routines, el botón dice New routine y otras etiquetas dicen rutina. Para crear una tarea allí, consulta Formulario de página completa.
  • Dirección web: claude.ai/code/routines
  • CLI: el alias /routines de /schedule, la descripción del comando y las respuestas de Claude mientras configura una tarea
  • API: la ruta del endpoint /fire, su encabezado beta, el type de su respuesta, la etiqueta <routine-fire-payload> y la página de referencia Trigger a routine through the API
  • Configuración de la organización: el interruptor Scheduled tasks (Was Routines) o Routines

Solución de problemas

/schedule devuelve "Unknown command"

La CLI oculta /schedule cuando no se cumple alguno de sus requisitos: el menú de comandos muestra No commands match "/schedule" mientras escribes. Enviarlo devuelve Unknown command: /schedule, excepto en los casos siguientes en los que se indica una respuesta diferente.

La causa suele ser una de las siguientes:

  • Te autenticaste con una clave de API de Console, un perfil de Anthropic o una credencial de federación, o un proveedor de nube como Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. /schedule requiere un inicio de sesión con suscripción de claude.ai. Con una clave de API de Console o un perfil, y con la obtención de feature flags habilitada, enviar /schedule muestra en su lugar /schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access. Con un inicio de sesión de un proveedor de nube, sigues viendo Unknown command: /schedule. Si ANTHROPIC_API_KEY o ANTHROPIC_AUTH_TOKEN están definidos en tu shell, o apiKeyHelper está definido en settings.json, elimínalos primero, ya que tienen prioridad sobre un inicio de sesión de claude.ai. Un perfil o una credencial de federación también tiene prioridad, así que desactívalo también
  • Cerraste sesión por completo, sin clave de API ni otra credencial. Con la obtención de feature flags habilitada, enviar /schedule muestra /schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account. Antes de v2.1.268, una sesión sin iniciar mostraba el mismo mensaje de Claude for Enterprise que una clave de API de Console
  • Estás dentro de una sesión en la nube, donde enviar /schedule responde que el comando no está disponible en ese entorno. Administra las tareas programadas desde la interfaz web en su lugar
  • La política de tu organización desactiva las sesiones en la nube, que las tareas programadas requieren. En este caso, enviar /schedule responde Cloud sessions are disabled by your organization's policy en su lugar. Antes de v2.1.268, devolvía Unknown command: /schedule
  • Un Owner desactivó las tareas programadas para tu organización de Team o Enterprise. Antes de v2.1.227, el comando seguía apareciendo en este caso, y claude.ai rechazaba la tarea cuando Claude intentaba crearla o ejecutarla
  • Tu organización de Enterprise administra tu acceso con roles personalizados, y ninguno de tus roles incluye el permiso de tareas programadas en Remote sessions. Pídele a un Owner que lo agregue a uno de tus roles

Si la causa es el inicio de sesión de tu CLI o estar dentro de una sesión en la nube, aún puedes crear y administrar tareas programadas en claude.ai/code/routines. Ahí necesitas una cuenta Pro, Max, Ultra, Team o Enterprise. Si las tareas programadas o las sesiones en la nube están desactivadas para tu organización o no figuran en tus roles, tampoco puedes crearlas en la web.

Las tareas programadas están desactivadas para tu organización

Las tareas programadas en la nube están desactivadas para tu organización, y no puedes cambiarlo desde tu configuración local. Pregúntale al Owner de tu organización de Team o Enterprise si puede activar el interruptor Scheduled tasks (Was Routines) o Routines en Organization settings > Capabilities > Remote sessions.

Advertencias "The last run"

Cuando una advertencia en History comienza con "The last run", búscala en la primera columna y haz lo que indica su fila. La advertencia desaparece en cuanto se inicia una ejecución posterior.

Advertencia Qué hacer
"The last run didn't start because your organization had reached its limit on cloud sessions running at once." La tarea no necesita ningún cambio. Haz clic en Run now más tarde, o espera a la siguiente ejecución
"The last run didn't start because its cloud environment couldn't be found or used." En la página de detalles de la tarea, abre el menú junto a su nombre, selecciona Edit y busca el selector de entorno en la nube. Si dice Unavailable environment, ese entorno se archivó o ya no está disponible para tu cuenta, así que elige otro ahí y guarda los cambios. De lo contrario, reintenta con Run now en la página de detalles, o elige otro entorno en el selector y guarda los cambios
"The last run was blocked because it couldn't access something it needs, or your organization's policy doesn't allow it." Comprueba que tu acceso a GitHub cubra los repositorios de la tarea. Si es así, pregúntale a un Owner de tu organización de Claude si alguna política bloquea la tarea
"The last run didn't start because of a problem that's usually temporary." Haz clic en Run now para intentarlo de nuevo, o espera a la siguiente ejecución
"The last run didn't start because its repository or branch wasn't available." Comprueba en GitHub que cada repositorio de la tarea tenga la rama desde la que se inicia la ejecución. Comprueba también que tu acceso a GitHub cubra cada repositorio, y vuelve a conectar GitHub si tu conexión expiró
"The last run didn't start because some of its settings weren't accepted." En la página de detalles de la tarea, abre el menú junto a su nombre y selecciona Edit. El cuadro de diálogo no marca qué ajuste no se aceptó, así que revisa cada uno ahí, incluidos el nombre, el prompt, el modelo, los repositorios, el entorno, los conectores y los disparadores de la tarea
"The last run stopped because a usage limit was reached." Para saber cuándo pueden volver a iniciarse las ejecuciones de la tarea tras alcanzar un límite de uso, consulta Uso y límites
"The last run failed." Haz clic en Run now para intentarlo de nuevo, o espera a la siguiente ejecución. La ejecución fallida no tiene ninguna sesión que abrir

Recursos relacionados

  • /loop y programación dentro de la sesión: programa tareas locales dentro de una sesión de CLI abierta
  • Tareas programadas de escritorio: tareas programadas locales que se ejecutan en tu máquina con acceso a archivos locales
  • Entornos en la nube: configura el acceso a la red, las variables de entorno y los scripts de configuración para sesiones en la nube
  • Proyectos: trabajo continuo que Claude coordina entre sesiones en la nube paralelas; las tareas programadas creadas desde un proyecto aparecen en su pestaña Scheduled tasks
  • Conectores MCP: conecta servicios externos como Slack, Linear y Google Drive
  • GitHub Actions: ejecuta Claude en tu pipeline de CI ante eventos del repositorio