Back to library
Field guide · Advanced
Operator's Field Guide

Routines run in the cloud.
Scheduled tasks run on your Mac.

Claude has two different "set it and forget it" surfaces - they look similar, but they live in different tabs and behave very differently. Knowing which to pick is the difference between a workflow that runs while you sleep and one that quietly stops because you closed the lid.

In the app Code › Routines

Routines

Templated jobs that fire on a schedule, by API, or by webhook. Run remotely on Anthropic's infrastructure. Capped at 15 included remote daily runs - extras burn usage credits.

Remote Schedule API trigger Webhook trigger Templated 15/day included
In the app Cowork › Scheduled

Scheduled Tasks

A recurring run of an existing Cowork task. Lives on your machine - only fires while your computer is awake. Set up by typing /schedule inside any existing task.

Local Schedule On-demand Tied to a task Needs Mac awake
Side by side

The real differences.

Dimension
Routines

Code tab

Code › Routines
Scheduled tasks

Cowork tab

Cowork › Scheduled
Where it runs
Remote. Cloud-hosted, on Anthropic infra
Local. On your computer
Needs your Mac awake?
No. Lid closed, screen off - still fires
Yes. "Keep awake" toggle ships with the feature for a reason
How it gets triggered
Schedule, API call, or webhook
Schedule or manual run
Shape of the thing
A templated, parameterized job. Built once, fired many ways.
An existing task you've added a schedule onto
How you set it up
Code tab › Routines › New routine
Open a Cowork task and type /schedule
Cost model
15 included remote daily runs. Extras consume usage credits.
Runs on your machine - no remote run quota
Best for
Automation hooks for code, scheduled reports, integrations triggered by other systems
Recurring Cowork workflows you'd otherwise re-open and re-run by hand
Worst fit when
You only need it once, or the work is locked to your Mac (local files, local apps)
You need it to fire while your laptop is closed
When to reach for which

Pick the right surface for the job.

R

Reach for a Routine when…

Code tab. Remote. Doesn't care if your Mac is on.
  • It needs to fire while you're offline.Overnight, weekends, in flight - cron beats your sleep cycle.
  • You want to kick it off from outside Claude.A webhook from GitHub, Stripe, a form. Or an API call from another service.
  • You'll run the same shape over and over.Templated and parameterized - the work has a stable structure.
  • The job is a deliverable.A daily briefing in Slack, a weekly client report, a PR review on push.
  • 15-ish runs a day is enough.More than that is fine - extras just spend usage credits.
S

Reach for a Scheduled Task when…

Cowork tab. Local. Runs while your Mac is awake.
  • The work belongs to a task you already use.You've built a Cowork task and you want it to repeat on cadence.
  • The task touches local stuff.Files on disk, Mac apps, the desktop - things a cloud agent can't reach.
  • You'll be at your desk anyway.9-to-5, daytime cadence. Toggle "Keep awake" if you want.
  • You don't want it eating remote run credits.Local runs are not on the routine quota.
  • You want to spin it up from inside a task.Type /schedule and you're done - no separate template to build.
Decide in 15 seconds

A short decision tree.

Does this need to run while your Mac is off - or get triggered by another system?
Yes
Routine. Cloud-hosted, fires on cron / API / webhook regardless of your laptop state.
No
Stay local - now ask: does it lean on a Cowork task you already use?
Yes
Scheduled task. Open the task, type /schedule, pick the cadence. Done.
No
You probably don't need either - run it once and move on.
In the wild

Real use cases.

Routine

Morning briefing

Daily at 7am, pull calendar, top emails, overdue tasks. Drop a summary in Slack. Fires whether your Mac is open or not.

Code › Routines › New routine › schedule
Routine

On-push code reviewer

GitHub webhook hits a routine on every push. It writes a review comment on the PR before you even see the notification.

Code › Routines › trigger: webhook
Routine

Weekly client report

Friday 4pm - generate a status update for every active client from Teamwork + HubSpot. Templated once, runs forever.

Code › Routines › cron: Fri 16:00
Scheduled task

Inbox triage at 8am

You already have a "Triage my inbox" Cowork task. Put it on a schedule so it's ready when you sit down with coffee.

Open the task › /schedule › daily 8:00
Scheduled task

Local file sweep

A task that scans ~/Downloads, organizes screenshots, and moves invoices. Cloud can't see your disk - this has to run local.

Cowork task › /schedule › hourly
Scheduled task

End-of-day journal

5:30pm prompt that pulls today's Granola notes, summarizes wins, drafts tomorrow's top-3. Runs while you're still at the desk.

Cowork task › /schedule › weekdays 17:30
Quickstart

How you actually set each one up.

Routines - in the Code tab

  1. Switch to the Code tab.Top-left mode switcher in the Claude desktop app.
  2. Open Routines in the sidebar.The lightning-bolt item under "New session".
  3. Click New routine.Top-right of the Routines panel.
  4. Write the prompt template.Treat it like a job description - what to do, what to deliver, where to send it.
  5. Choose how it gets kicked off.Schedule (cron), API, or webhook. You can combine triggers.
  6. Save and watch the quota.15 included remote daily runs. Extras consume usage credits.

Scheduled tasks - in the Cowork tab

  1. Switch to the Cowork tab.Same mode switcher, middle option.
  2. Open an existing task - or create one.Scheduled tasks attach to an existing Cowork task; they don't live on their own.
  3. Type /schedule.Anywhere in the task. The schedule picker opens inline.
  4. Pick the cadence.Once, daily, weekly, custom.
  5. Decide on "Keep awake".Toggle in the Scheduled panel. Without it, your Mac sleeping = your task skipping.
  6. Find runs in Cowork › Scheduled.All your scheduled tasks live in that sidebar item.
The one-line takeaway

If the trigger lives outside your laptop - it's a routine. If the work lives inside an existing task - it's a scheduled task.