I want to be precise about what happened on April 14, because framing matters.
Anthropic didn’t launch a convenience feature. It launched a statement: Claude Code is no longer just a tool you use. It’s a service that runs even when you’re not there.
That’s the real story behind Routines.
What Exactly Are Routines
A Routine is a packaged configuration of Claude Code — a prompt, one or more repositories, and a set of connectors — that executes automatically on Anthropic’s cloud infrastructure. You define it once. It runs on a schedule, fires when you call an API endpoint, or gets triggered by a GitHub event. Your laptop can be closed. The Routine doesn’t care.
Three types of triggers, each covering a different automation pattern:
Scheduled — hourly, nightly, or weekly cadence. The canonical example from official documentation: fetch the most urgent bug from Linear every night at 2am, attempt a fix, open a draft PR. The team wakes up with something reviewable.
API — an HTTP POST to the routine’s endpoint with a bearer token. Your monitoring system detects an error threshold, passes the alert body, and Claude correlates it with recent commits and assembles a fix. On-call reviews a PR instead of starting from a blank terminal.
GitHub — triggered by repository events: pull requests, pushes, issues, workflow runs. A routine watches every PR that touches /auth-provider and posts a security-focused summary to your #auth-changes Slack channel. It doesn’t run a deterministic script. It makes a judgment call, based on context.
A single Routine can combine multiple trigger types simultaneously.
This Isn’t “Cron Jobs with AI”
SiliconAngle called them “dynamic cron jobs.” It’s technically correct, but undersells the structural shift.
Cron jobs and GitHub Actions run deterministic scripts. Same input, same output, always. Claude Code Routines run a model. Same trigger, potentially different output depending on what’s in the repository, what the issue tracker says, what the logs show. That’s not a cron job. That’s an agent with a recurring work schedule.
The distinction matters for teams thinking about where to use this. Deterministic automation belongs to GitHub Actions. Automation that depends on judgment — triage, code review, documentation drift detection, deploy verification — is where Routines earn their place.
The Context of Three Generations
It’s worth understanding the timeline, because Anthropic moved fast.
Before March 2026, Claude Code had no native scheduling. Engineers who wanted automated workflows built their own cron jobs and managed their own infrastructure. Boris Cherny, the engineer who built Claude Code, told users to handle it themselves.
March brought Desktop Scheduled Tasks. Claude Code could run scheduled automations — but on your local machine. Your laptop had to be open.
April 14: Cloud Routines. The infrastructure moves to Anthropic’s side. The constraint disappears.
Each iteration closed a specific gap. This one closes the last big one for unattended automation.
The Real Constraints to Understand
Research preview means things are going to change. These are the constraints that matter right now:
Daily execution limits per plan:
- Pro: 5 routines/day
- Max: 15 routines/day
- Team / Enterprise: 25 routines/day
Overages get charged — but only Max, Team, and Enterprise users have that option. Pro users hit a hard limit.
Stateless execution. Each routine run begins with a clean session. There’s no memory of the previous execution. Your prompt has to load the entire job specification. This isn’t a weakness — it’s a design constraint you have to engineer around. Write prompts that include explicit success criteria, failure modes, and output format. Test them first in interactive Claude Code sessions.
Draft PRs, not auto-merges. Routines can open PRs and leave comments. Merging to main has to stay a human decision. This is the correct default during a research preview, and frankly the correct default in general until you’ve built enough confidence in the output quality of a specific Routine.
What This Means for Platform Teams
If you run platform engineering, dev tooling, or you’re a CTO/engineering lead, the question isn’t “is this interesting?” It’s “what do I do with this now, and what do I expect?”
Do now: Low blast radius, high value tasks where Claude’s judgment adds something a deterministic script can’t. Documentation drift detection is the ideal starting point — a weekly Routine that scans merged PRs, flags docs referencing modified APIs, and opens update PRs for an editor to review. High value, zero risk of breaking production.
Build toward: Alert triage integrated with your monitoring pipeline. The API trigger pattern — your observability tool calls a Routine’s endpoint, passes the alert, Claude correlates it with recent commits and assembles a fix — is genuinely valuable. But you refine the prompt engineering in interactive sessions before automating it.
Wait on: Anything that touches production directly, or any workflow where incorrect Claude output requires significant cleanup. The research preview is real. The limits will change. Behavior may change. Don’t build a critical path dependency on this yet.
The Biggest Signal
Claude Code is making a deliberate move to own more surface area of the developer workflow. Routines is part of a pattern: the redesigned desktop app (integrated terminal, diff viewer, in-app file editor), multi-session support, and now cloud-hosted automation. Anthropic is explicitly trying to reduce the number of times you “jump” to another tool.
For developers, this is useful. For the IDE plugin ecosystem, third-party orchestration layers, and DevOps tooling vendors who built around Claude Code’s previous gaps — it’s pressure.
The right read on Routines isn’t “Claude Code got cron jobs.” It’s that the definition of what an AI code tool is supposed to do just expanded. From interactive pair programmer to background service. From something you invoke to something that watches.
It’s worth paying attention.
Have you set up a Routine yet? What was the first task you automated? Let us know below. ![]()
