Claude Routines Explained: The CRON Replacement?
Routines run Claude Code on a schedule from Anthropic’s cloud — but with a one-hour interval floor, a 5–25 daily run cap and no exit code, they replace the work you never automated rather than your crontab.
Advertisement

Routines put Claude Code on a schedule. Define a prompt once, attach a trigger, and it runs on Anthropic's cloud infrastructure whether or not your laptop is open — no server to maintain, no cron table to edit, no CI runner to configure.
Which makes the obvious question the title one. And the answer is no, not really — but not because routines are underpowered. They fail as a cron replacement because they are solving a different problem, and the places where they genuinely cannot substitute for cron are specific and worth knowing before you delete a crontab.
Everything below comes from Anthropic's own documentation, captured while writing. Routines launched on 14 April 2026 and remain in research preview, so limits and API shapes can change.
What a Routine Actually Is
A routine is a saved Claude Code configuration: a prompt, one or more GitHub repositories, a cloud environment, and a set of MCP connectors, packaged together and run automatically when a trigger fires.
Each run creates a full Claude Code cloud session. The repositories are cloned fresh from their default branch, the session can run shell commands, use skills committed to the repo, and call every connector you included. Work is pushed to claude/-prefixed branches, and you can open the run afterwards as an ordinary session to read the transcript, review the diff, or continue the conversation by hand.
Critically, routines run with no permission prompts. There is no permission-mode picker and no approval gate mid-run. What the session can reach is fixed entirely by three things you choose up front: which repositories you attach, what the environment's network policy allows, and which connectors you leave enabled.
The Three Triggers
A single routine can carry any combination of these:
| Trigger | Fires when | Configure from |
|---|---|---|
| Schedule | A recurring cadence (hourly, daily, weekdays, weekly) or once at a future timestamp | Web or CLI |
| API | You POST to the routine's private endpoint with its bearer token | Web only |
| GitHub | A pull request or release event matches your filters | Web, or CLI on v2.1.225+ |
The API trigger is the one people underestimate. Each routine gets a dedicated /fire endpoint and its own bearer token:
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": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'
It returns a session ID and URL immediately, so your monitoring tool, deploy pipeline or internal dashboard can hand Claude a task and link an engineer straight to the running session.
The GitHub trigger supports pull request and release events, filtered on author, title, body, base branch, head branch, labels, draft state and merged state, with operators including equals, contains, starts with, is one of, and matches regex. One caveat the docs flag explicitly: the regex operator tests the entire field, so matching any title containing hotfix requires .*hotfix.*, not hotfix.
Where Routines Beat Cron Outright
Four things cron structurally cannot do:
- Judgement. Cron executes a script you wrote in advance. A routine reads a stack trace it has never seen, correlates it against recent commits, and opens a draft PR with a proposed fix. You cannot express that in bash.
- No infrastructure. There is no box to patch, no runner to keep alive, no secret rotation on a VM you forgot about. Anthropic hosts it.
- Connectors as first-class. Your existing claude.ai MCP connectors — Slack, Linear, Google Drive — are available inside the run, routed through Anthropic's servers rather than the session's network, so they work without touching the domain allowlist.
- Three triggers, one definition. The same PR-review routine can run nightly, fire from your deploy script, and react to every opened pull request. A crontab does exactly one of those.
Where Cron Still Wins
These are the constraints that decide whether routines can actually replace anything you currently run.
1. The minimum interval is one hour
Cron's floor is one minute — and with a wrapper, one second. A routine's floor is one hour, and expressions that run more frequently are rejected. Every health check, queue drain, metrics scrape and heartbeat you run on a sub-hourly cadence is out of scope permanently, not temporarily.
Custom intervals are also awkward: the web form only offers hourly, daily, weekdays and weekly. For anything else — every two hours, the first of each month — you pick the nearest preset, then run /schedule update in the CLI to set a real cron expression.
2. There is a daily run cap
| Plan | Routine runs per day |
|---|---|
| Pro | 5 |
| Max | 15 |
| Team | 25 |
| Enterprise | 25 |
An hourly routine would consume 24 runs a day, which exceeds every plan except Team and Enterprise — and would leave those with a single run spare for everything else. The daily cap, not the interval floor, is the binding constraint in practice. Pro's five runs a day means roughly one routine on a weekday cadence plus a little headroom.
Two mitigations: organisations with usage credits enabled can continue on metered overage past the cap, and one-off scheduled runs do not count against it — though they still draw down normal subscription usage.
3. Runs are staggered, not punctual
Runs may start a few minutes after the scheduled time. The offset is consistent per routine, but this is not a system where something happens exactly at 09:00:00.
4. Green does not mean it worked
This is the operational trap, and Anthropic documents it plainly: a green status in the run list means the session started and exited without an infrastructure error. It does not mean the task succeeded. Blocked network requests, missing connector tools and outright task failures all show green, and surface only inside the transcript.
Cron gives you an exit code. A routine gives you a transcript. If your monitoring assumes non-zero means broken, routines will report healthy while doing nothing useful — plan an explicit success signal into the prompt itself, such as posting to a channel or opening a PR, and alert on the absence of that instead.
5. It is not deterministic
The same prompt against the same repository can produce different work on different days. For code review and backlog triage that is a feature. For anything where you need identical behaviour every time — a database backup, a certificate renewal — it disqualifies the tool entirely.
6. It requires a claude.ai subscription login
/schedule is unavailable to Console API keys, Anthropic profiles, federation credentials, and cloud-provider logins on Amazon Bedrock, Google Cloud or Microsoft Foundry. If ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in your shell it takes precedence over a claude.ai login and the command disappears. So do DISABLE_TELEMETRY, DO_NOT_TRACK, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC and DISABLE_GROWTHBOOK, which switch off the feature-flag fetching /schedule depends on.
7. Routines are personal, not shared
A routine belongs to your individual claude.ai account. Teammates cannot see or edit it, and it counts against your allowance. Everything it does through your GitHub identity or connectors appears as you — your commits, your pull requests, your Slack messages. That is a meaningful difference from a CI job running as a service account, and it matters for audit trails.
Setting One Up
From the CLI, /schedule in any session starts a conversational setup. You can pass the description directly:
/schedule daily PR review at 9am
/schedule tomorrow at 9am, summarize yesterday's merged PRs
/schedule in 2 weeks, open a cleanup PR that removes the feature flag
Claude asks follow-up questions about cadence, repositories and prompt, then saves. The command is also aliased as /routines. For management, /schedule list, /schedule update and /schedule run do what they say, and on v2.1.227+ you can ask diagnostic questions like "why did my nightly review do nothing this morning?" — Claude reads the run log and explains tool errors, permission denials and the final result.
From the web, claude.ai/code/routines has the full form, and it is the only surface that can create API triggers or generate tokens.
Because a routine runs unattended, the prompt is the whole product. It must be self-contained and explicit about both the task and what success looks like — there is no one to ask a clarifying question of.
The Security Model Is Worth Reading Twice
Three details that deserve attention before you point a routine at a production repository:
Connectors get unrestricted use. When you create a routine, every connector on your account is included by default, and Claude can use every tool from an included connector — including writes — without asking permission during a run. Removing the ones a routine doesn't need is the single highest-value thing you can do in the creation form.
Fire text arrives labelled untrusted. The optional text field on the /fire endpoint does not reach Claude as a plain instruction. It is wrapped in a <routine-fire-payload> block marked as untrusted data, and the routine's own saved prompt has to opt into acting on it — "Investigate the alert described in the routine-fire-payload block" — or the text stays inert context. That is deliberate: anyone holding the bearer token can send text, so a leaked token delivers labelled data rather than direct commands.
Branch pushes are checked. claude/-prefixed branches are always accepted. If your prompt directs a push elsewhere, Claude Code rejects it when the branch is protected, when someone else has an open PR from it, or when it carries commits authored by anyone but you.
On Team and Enterprise plans, an Owner can disable routines organisation-wide with a toggle in admin settings, which stops existing routines and blocks new ones.
Three Kinds of Claude Scheduling
Routines are one of three scheduling surfaces, and people conflate them constantly:
| Feature | Runs on | Best for |
|---|---|---|
| Routines | Anthropic's cloud (or your self-hosted environment) | Unattended work on repos, laptop closed |
| Desktop scheduled tasks | Your own machine | Work needing local files and local tooling |
/loop | Inside an open CLI session | Repeating a task while you are already working |
In the Desktop app's Routines sidebar, choosing Cloud creates a routine; choosing Local creates a desktop scheduled task instead. Different feature, different machine, different limits.
So Is It a CRON Replacement?
No — and framing it that way undersells it.
Cron is a deterministic dispatcher. It runs a script you already wrote, on the second, forever, for free, with an exit code. Routines cannot match any part of that: not the interval, not the punctuality, not the volume, not the determinism, and not the clean success signal.
What routines replace is not your crontab. It is the work you never automated because writing the script was harder than doing it by hand — grooming a backlog, reviewing a PR against a checklist that lives in someone's head, noticing that the docs drifted, porting a change between two SDKs. That work was never a cron candidate, because you cannot express judgement in bash.
The practical split is clean. Anything with a fixed procedure, a sub-hourly cadence, or a hard requirement to run identically every time stays on cron or CI. Anything requiring a decision, running at most a few times a day, and tolerating a transcript instead of an exit code is a routine — and it is genuinely a category that had no good tool before.
The daily caps make Pro a place to run one useful routine rather than a fleet. Max at 15 runs a day is where this starts feeling like infrastructure. And for anything you would page someone about, keep the cron job.
Keep Reading
More on Claude and Claude Code: Claude Code API pricing, rate limits and usage cost, how to use Claude Code for free, Claude pricing explained, how to create a Claude skill and Claude AI stats 2026. Or browse all guides and prompts on PromptsRush.
Frequently Asked Questions
10 questions answered


