Claude routines: Claude Code's scheduled tasks, setup and limits
Claude Code routines, now called scheduled tasks: run a prompt on your repos on a schedule, a GitHub event or an API call, with connectors, limits and /loop.
Updated
Short answer
A routine is a saved Claude Code prompt that runs on its own in Anthropic's cloud, on a schedule, when something happens on GitHub, or when you call its URL. In late October 2026 Anthropic renamed routines to scheduled tasks. Create one with /schedule in the CLI, under Scheduled in the desktop app's Code tab, or at claude.ai/code/routines. It needs a Pro, Max, Ultra, Team or Enterprise plan and a claude.ai login, and runs count against your plan's usage. For a prompt that repeats inside the session you have open, use /loop.
Routines are now scheduled tasks
Claude Code's docs now call them scheduled tasks, "formerly routines" (Claude Code docs). The old name stays in a few places: the claude.ai/code/routines address, the /routines command, which still works, the /fire API, and the admin setting "Scheduled tasks (Was Routines)". This page says routines for the cloud ones, to keep them apart from the two other ways to schedule:
| Routines (cloud scheduled tasks) | Desktop scheduled tasks | /loop |
|
|---|---|---|---|
| Runs on | Anthropic's cloud, with a fresh clone of your repos | Your computer, in the Claude desktop app | Your open Claude Code session |
| Computer asleep | Runs anyway | Skipped; one catch-up run when it wakes | Doesn't run |
| Starts on | A schedule, a GitHub event or an API call | A schedule | An interval |
| Reaches | Repos, claude.ai connectors | Your local files, tools and MCP servers | Whatever the session can |
| Lasts | Until you turn it off | Until you turn it off | 7 days at most |
Create a routine
All three ways save to the same account:
- CLI: run
/schedulewith what and when, such as/schedule daily PR review at 9amor/schedule in 2 weeks, remove the old feature flag. - Desktop app: open the Code tab, then Scheduled.
- Web: go to claude.ai/code/routines, where the Templates tab has examples.
A routine holds a prompt, one or more repositories, the connectors it may use, a cloud environment, and a model and effort level. Write the prompt as instructions for a run nobody watches: what to check, what to change, where to report.
Triggers
| Trigger | How it works |
|---|---|
| Schedule | Hourly, daily or weekly, a custom cron (at most hourly; UTC unless you set CRON_TZ=), or once at a set time. New schedules start a few minutes past the hour, since runs on the hour can start late |
| GitHub | A pull request, release or issue event, with filters for pull requests. Needs the Claude GitHub App |
| API | A POST to the routine's /fire URL with its own bearer token. An optional text field, up to 65,536 characters, reaches the run as untrusted input. Set up on the web only |
Plans and limits
Routines come with Pro, Max, Ultra, Team and Enterprise, and need a claude.ai login. With an API key, Amazon Bedrock or Google Vertex, /schedule doesn't appear. Team and Enterprise owners can turn routines off.
Runs count against your subscription like interactive sessions. Instead of the daily run caps from launch, Anthropic now sets hourly ones (Claude Code docs):
| Limit | Per hour |
|---|---|
| Scheduled runs, per account | 100 |
| Runs of one routine (Run now, API calls and one-off runs together) | 30 |
| Run now, per account | 100 |
| API calls, per account | 100 |
Extra usage lets runs continue past your plan's limit. Each run gets about 4 CPUs, 16 GB of memory and 30 GB of disk (cloud environments).
Connectors and MCP servers in routines
A routine can use the connectors on your claude.ai account, including custom ones you added at claude.ai/customize/connectors. All of them are included by default, with their write tools; remove the ones a routine doesn't need. Calls go through Anthropic, and anything a routine does shows up as you: commits, Slack posts and emails come from your accounts.
Servers you added with claude mcp add stay on your computer and don't reach routines. To use one, add it at claude.ai as a custom connector. A .mcp.json committed to the repo also loads, but a server there that needs an interactive sign-in can't complete it in an unattended run.
For API keys a run needs, use the environment's network secrets, which a proxy adds to requests so Claude never sees the value. Plain environment variables are visible to anyone who uses the environment.
What a routine may do on its own
Runs start in auto mode, where a classifier blocks risky actions. A run pauses for you when it hits an ask rule, or after 3 blocked actions in a row or 20 in total; open the run to answer it. The routine's prompt can't approve anything on your behalf. If your organization set a connector tool to ask, it asks in routines too (MCP docs).
Desktop scheduled tasks
The desktop app's local tasks run on your computer with your files, tools and local MCP servers (desktop docs):
- They run only while the app is open and the computer is awake. On waking, the app runs one catch-up for the latest missed run in the past 7 days.
- Keep computer awake in settings helps, but closing the lid still sleeps it.
- Each task has its own permission mode. In Manual, a run waits until you approve; Always allow saves an approval for later runs.
- The prompt lives in
~/.claude/scheduled-tasks/<name>/SKILL.md.
/loop
/loop repeats a prompt or skill inside the session you have open (scheduled tasks docs):
/loop 5m check whether the deploy finished and tell me
- With an interval, such as
10m,2hor1d, it runs on that schedule. Without one, Claude picks the pace, from a minute to an hour. - A bare
/loopruns a built-in maintenance prompt, or.claude/loop.mdif your repo has one. - It runs only while Claude Code is open and idle, and doesn't catch up on missed runs. A session holds up to 50 loops, and repeating ones end after 7 days.
- Press Esc to stop a self-paced loop; ask Claude to cancel one with an interval.
CLAUDE_CODE_DISABLE_CRON=1turns loops off.
Ideas for routines
- Morning triage: "Every weekday at 8, read new Sentry issues, open a draft PR for any with an obvious fix, and post the list to #eng."
- PR review: on every pull request opened, "Review for security and missing tests; comment on the PR."
- Dependency upkeep: "Every Monday, update minor dependency versions, run the tests, and open a PR if they pass."
- Release notes: on every GitHub release, "Write customer-facing release notes from the merged PRs and post them to #releases."
- From your own tools: call the
/fireURL from an alert with the alert text, and have the routine investigate and report.
Why a routine didn't run
/schedule doesn't exist
You're logged in with an API key, Bedrock or Vertex, or your organization turned routines off. Log in with your claude.ai account.
A scheduled run didn't start
The routine's page shows a banner with the reason. If its GitHub connection is gone, runs are skipped for up to 72 hours, then the routine turns off; reconnect GitHub and turn it back on.
A run is paused
The classifier blocked actions, or a tool needed an approval. Open the run, answer it, and adjust the prompt or the connectors so the next run doesn't need you.
A connector is missing in the run
It was added with claude mcp add. Add it at claude.ai/customize/connectors instead.
The run says Succeeded, but the work failed
A run reports Succeeded when it finishes, not when the task worked. Read the transcript, and have the prompt report failures where you'll see them.
With Upsy
To give routines your Gmail, Google Calendar, Slack and other apps, add Upsy at claude.ai as a custom connector, not only with claude mcp add. Every routine can then use it:
- Several accounts: up to five Gmail accounts and five Slack workspaces in one connector.
- Read-only that holds: a routine runs in auto mode with no one watching. With Read-only access in Upsy, no run can send or delete, whatever the classifier decides.
- History and alerts: every email and message a routine reads or sends is logged in Upsy, and Upsy emails you if one assistant sends 20 or more messages in 10 minutes.
A claude.ai connector shows up in Upsy as Claude, with Claude's access, so routines share it with Claude's chats and scheduled tasks. Your local sessions use the access you gave Claude Code.
FAQ
Are Claude routines and scheduled tasks the same thing?
Yes. In late October 2026, Anthropic renamed Claude Code's routines to scheduled tasks. The old URL and the /routines command still work.
How much do Claude Code routines cost?
Nothing extra. Runs come out of your Pro, Max, Ultra, Team or Enterprise usage, like any session, with extra usage past the limit.
How often can a routine run?
At most hourly on a schedule. A single routine can run up to 30 times an hour, counting Run now and API calls.
Do routines run when my computer is off?
Yes. Routines run in Anthropic's cloud. Desktop scheduled tasks and /loop need your computer awake and the app open.
Can routines use MCP servers?
Yes: the connectors on your claude.ai account, including custom ones, and servers in a repo's .mcp.json. Servers added only with claude mcp add aren't available.
Playbooks for these apps
Related guides
- How to connect Slack to Claude CodeAdd Slack to Claude Code so it can read channels and threads, find people and post updates as you, without creating a Slack app or pasting tokens.
- How to connect Slack to Codex: Slack MCP setupLet Codex read Slack channels and threads, find people and post as you, from the CLI, IDE extension or desktop app, with no Slack app to build.
- How to connect Slack to Cursor: Slack MCP setupGive Cursor's agent your Slack: read channels and threads, find people and post updates as you, with Slack's plugin or Upsy, and no Slack app to build.
- How to connect Slack to Meta MuseLet Muse read your Slack channels and threads, find people, and post messages as you, with every message it sends logged in your history.
- How to connect Slack to GrokConnect Slack to Grok and Grok Bot: read channels, threads and DMs, send messages as you, or keep it read-only. What works natively and what doesn't.
- Slack MCP server: the official server, setup and alternativesSlack's official MCP server at mcp.slack.com: its tools, which clients work, admin approval, and setup in Claude, Cursor and Codex. Plus self-hosted and Upsy.