← Alle Playbooks
Playbook· build

Agents programados con Claude Code routines

Las routines son agents programados hosteados en la nube. Aquí cómo construir un brief diario, un triage de inbox o un deploy watcher como routine sin servidor propio.

Las routines son parte de Claude Code desde abril 2026. Le das a un agent un cron schedule y un prompt, y corre autónomamente en el horario elegido sin que tengas que estar en la sesión. Para muchos operators eso reemplaza su propio crontab con shell scripts o un workflow de n8n.

El punto: las routines corren en infraestructura de Anthropic, no en tu máquina. Significa: corren mientras duermes, sobreviven a reboots, y ven tus repositorios vía la conexión GitHub más los connectors que elegiste al crear la routine.

Estado abril 2026, probado con Claude Code v2.1.118+, documentación oficial. Disponible en Pro, Max, Team, Enterprise con Claude Code on the web habilitado.

Qué tienes al final

Tres routines corriendo que has construido con este playbook:

  1. Un brief matutino diario a las 06:00 que resume sprint, salud MCP y estado del inbox y te lo manda por Slack o email.
  2. Un triage de inbox al mediodía que etiqueta nuevos mails y archiva los no importantes.
  3. Un deploy watcher que se dispara tras cada push a main y comprueba si los containers de producción están healthy.

Los tres usan connectors que eliges en el setup de la routine. Sin código nuevo, solo configuración.

Paso 1: Crear una routine

En Claude Code escribes:

/schedule

Claude abre un diálogo que te pregunta nombre, schedule (cron o lenguaje natural), prompt, repositorios y connectors. También puedes pasar la descripción directamente:

/schedule daily 06:00, run the morning-brief skill and post to Slack

Para una ejecución única en el futuro:

/schedule in 2 weeks, open a cleanup PR for the feature flag we just shipped

La routine se guarda en tu cuenta claude.ai, no en un archivo local. Es scope de cuenta, no de proyecto, así que aparece en todas tus sesiones y en el web UI bajo claude.ai/code/routines.

Por la CLI configuras solo schedule triggers. Triggers API y de eventos GitHub se añaden después en el web UI.

Cuatro subcomandos que usarás en el día a día:

/schedule list      # mostrar todas tus routines
/schedule update    # editar una routine
/schedule run       # disparar una routine ahora, sin esperar al próximo slot
/schedule           # crear una nueva routine de forma conversacional

Paso 2: Brief matutino

Routine morning-brief, schedule 0 6 * * 1-5 (Lun-Vie 06:00):

Eres el bot de brief matutino. Tarea:

1. Lee el sprint actual vía el connector de memoria
2. Comprueba la salud del MCP fleet
3. Lee el estado del inbox vía el connector de mail
4. Comprueba follow-ups de hoy vía el connector CRM

Escribe un brief de 200 palabras en tono Reddit. Qué tiene que pasar
hoy, qué se queda abierto, cuáles son las dos decisiones más
importantes que debo empujar.

Manda el brief por Slack (connector Slack, canal "morning-brief").

Al crear la routine, eliges en el connector picker Slack más los connectors de memoria y CRM. No necesitas añadir repositorios porque el bot no trabaja en código.

Atento al intervalo mínimo de cron: 1 hora. Más frecuente no es posible vía /schedule.

Paso 3: Triage de inbox

Routine inbox-triage, schedule 0 12 * * * (diario 12:00):

Eres el bot de triage de inbox. Tarea:

1. Lee mails nuevos de las últimas 6 horas vía el connector de mail
2. Por mail: ¿es un lead, un mail de proveedor, un newsletter,
   o un bot bounce?
3. Lead → etiqueta "lead" + respuesta automática con acknowledgement
4. Newsletter → archive
5. Bot bounce → archive
6. Mail de proveedor → etiqueta "vendor", deja para review humano
7. Manda un resumen por Slack: "X mails triaged, Y archivados, Z leads"

Importante: no dejes que el bot archive mails importantes por su cuenta. Si tiene dudas, debe dejar el mail con etiqueta "review-needed".

Paso 4: Deploy watcher

El deploy watcher funciona como una routine con API trigger en vez de schedule. Primero creas la routine vía /schedule (solo prompt + repos + connectors), luego vas a claude.ai/code/routines, abres la routine y añades un API trigger vía "Add another trigger → API". Recibes una URL HTTP y un bearer token.

Prompt de la routine:

Eres el deploy watcher. Te disparan después de un deploy de producción.

Tarea:
1. Connector SSH a prod, lee estado docker ps
2. Curl la ruta /health de la app
3. Si todo verde: confirmación corta por Slack "Deploy healthy"
4. Si un container unhealthy o /health falló:
   - Saca logs de los últimos 5 minutos
   - Slack alert con nombre de container, estado, logs

En tu script de deploy al final, dispara la routine vía HTTP POST:

curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABC.../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": "Production deploy of commit abc123 just finished, please verify"}'

La routine inicia una nueva sesión y devuelve el session ID y URL. Guarda el token de forma segura. Se muestra una sola vez y no se puede recuperar después. Para rotarlo, abre el mismo modal en el web UI y haz click en "Regenerate" o "Revoke".

Si realmente necesitas esperar 15 minutos tras el deploy antes de que el watcher comprueba, no metas eso en la routine misma. Mejor: programa el trigger desde tu script de deploy con un delay (p.ej. at now + 15 minutes o una línea cron separada). Las routines no están pensadas para sleeps internos largos.

Límite: Qué NO pueden las routines

  • Sin acceso directo a tu filesystem local. Las routines corren en sesiones cloud de Anthropic. Ven tus repos vía clone (sobre la rama default al inicio de cada run) más los connectors que elegiste.
  • Intervalo mínimo de cron: 1 hora. Más frecuente no es posible vía /schedule. Si necesitas triggers a nivel de minuto, eso es trabajo de crontab local o un timer systemd.
  • Cap diario por cuenta. Cada cuenta tiene un allowance diario de runs de routine. One-off runs (p.ej. /schedule in 2 weeks, ...) no cuentan contra el cap, se descuentan del subscription usage normal.
  • Las routines pueden escribir por defecto solo en ramas con prefijo claude/. Para permitir que una routine empuje a main u otras ramas existentes, activa "Allow unrestricted branch pushes" por repo en el editor de la routine.

Logs y debugging

Los logs de cada run viven en el web UI en claude.ai/code/routines. Haz click en una routine, luego en un run específico. Ves una sesión completa, puedes revisar lo que hizo Claude, inspeccionar cambios o abrir una pull request.

Cuando un run falla silenciosamente, las causas comunes son:

  • Un connector fue retirado después del setup de la routine y el prompt lo necesita
  • Nombre de tool en el prompt desactualizado (p.ej. porque actualizaste el MCP server)
  • Cap diario alcanzado, estado visible en claude.ai/settings/usage

Qué se siente diferente vs cron

Con cron escribes un bash script que llama otra tool. Con routines la routine misma es el agent: tiene un prompt, puede pensar, puede decidir según lo que encuentra qué hacer.

Ejemplo: tu cron normal para "health check" es if curl -f / failed → send mail. Una routine puede en cambio "si el health falló, mira los logs por qué, clasifica si es un pattern conocido, y decide si alertar o primero intentar restart". Más inteligencia, menos brittleness.

Siguientes pasos

Cuando tengas el setup de este playbook con tres routines corriendo, mira las crews que construimos en el Nivel 5. Ese es el paso de "un agent hace una tarea" a "varios agents trabajan juntos".

Además: las routines son flat-rate en Max Plan, en Pro solo con capacidad limitada. Si tienes muchas routines corriendo en paralelo, Max Plan sale más barato.

Fuente

Las mecánicas descritas aquí vienen de la documentación oficial de Anthropic en code.claude.com/docs/en/routines. Si un flag, ruta de archivo o subcomando no está descrito ahí, no existe.