★ OverviewIntermediate9 min

What Routines Are — and How They Differ from /loop and Scheduled Agents

Routines are saved Claude Code configurations that execute on Anthropic's cloud infrastructure, not your machine. Understanding when to use Routines versus /loop versus local scheduled agents is the foundation for building reliable automation.

Quick Reference

  • Routines run on Anthropic's cloud — no machine, no terminal, no active session required
  • Three trigger types: Scheduled, API/webhook, GitHub events
  • Triggers are composable — one Routine can respond to multiple trigger types
  • /loop requires an active terminal; Routines survive laptop closure
  • Available on Pro, Max, Team, and Enterprise plans
  • Branch safety: Routines only push to branches prefixed with `claude/` by default
  • Configure Routines via Desktop app UI or the /schedule CLI command

What Routines Actually Are

A Routine is a saved Claude Code configuration — prompt, repository access, and connectors — that runs on Anthropic's cloud infrastructure on a schedule or in response to external events. The key word is 'cloud': unlike every other Claude Code execution model you've encountered so far, Routines have zero dependency on your machine being on, your terminal being open, or your session being active.

The Infrastructure Distinction

When a Routine fires, Anthropic's infrastructure provisions a fresh Claude Code environment, clones your repository, loads your connectors, and executes your prompt. The entire run happens remotely. You get a full execution transcript when it's done.

This changes the operational contract entirely. A Routine you set up at 9am to run nightly dependency audits will still run when you're on a flight, your laptop is in sleep mode, or you've switched machines. The execution environment is consistent and isolated across every run.

  • Routine = prompt + repository + connectors, saved as a reusable configuration
  • Execution happens on Anthropic's infrastructure, not your local environment
  • Each run gets a fresh, isolated environment — no state bleeds between runs
  • Full execution transcript available after every run, including failures
  • Configured once via Desktop app UI or /schedule CLI command