Routines vs Managed Agents: Where Recurring Agent Work Should Live


Two schedulers. Same word — “schedule.” Different products, different bills, different identity model.

Anthropic shipped two first-party schedulers in spring 2026: Claude Code Routines in April (research preview) and Managed Agents scheduled deployments in June (public beta) — roughly two months apart, not a coordinated launch. Both answer “run this agent on a cron.” Neither replaces the other. Pick wrong and you get the wrong bill, the wrong GitHub user on your commits, or a job that cannot pause for a human.

Picture a small developer blog. You want a daily scout: scan competitor posts, rank five article ideas, hand a brief to a writer, wait for editorial approval, then draft. Recurring, multi-step, tied to a git repo. Which Anthropic primitive do you reach for — or do you need something outside both?

Personal tool vs platform primitive

Anthropic split along a line you have seen before: personal productivity vs platform infrastructure.

Claude Code Routines (research preview, April 2026) bundle a saved prompt, GitHub repos, and MCP connectors into a job. Trigger it on a schedule, via API, or from GitHub events. Manage it at claude.ai, in the Desktop app, or with /schedule in the CLI. Billing draws on your claude.ai subscription. Identity is you — your GitHub user, your Slack, your connectors.

Managed Agents scheduled deployments (public beta, June 2026) attach a POSIX cron expression and IANA timezone to an API-defined agent. Each firing starts a fresh session in Anthropic’s hosted harness. Billing is per token plus $0.08 per session-hour. Identity is a service — API keys, vault-scoped credentials, typed run records.

The confusion is structural. Anthropic did not ship one scheduler with two tiers. They shipped two schedulers for two buyers.

Side by side

Claude Code RoutinesManaged Agents scheduled deployments
Where it livesclaude.ai account (web, Desktop, /schedule CLI)Claude Platform API (SDK, curl, Console)
StatusResearch previewPublic beta (managed-agents-2026-04-01 header)
Trigger typesSchedule, per-routine /fire API, GitHub eventsCron schedule + manual run endpoint
Schedule granularityPresets; custom cron with 1-hour minimumStandard POSIX cron, down to the minute
TimezoneLocal wall-clock, auto-convertedExplicit IANA timezone; documented DST semantics
IdentityActs as you (your GitHub user, your connectors)Acts as a service (API key, vault credentials)
BillingSubscription usage + per-account daily run capTokens at standard rates + $0.08/session-hour
Run recordsSession list, green/red statusTyped deployment run records with error filtering
Scale ceilingPer-account daily cap (varies by plan)Up to 1,000 scheduled deployments per org
Mid-run steeringNone — fully autonomousSend events to steer or interrupt a session

Two routine constraints bite in practice. Everything a routine does appears under your identity — commits carry your GitHub user, Slack posts use your linked accounts. And green run status only means the infrastructure worked, not that the task succeeded. Managed Agents at least gives you typed errors like session_rate_limited_error and agent_archived_error you can filter on.

What sticks with me: billing is the fork

Specs overlap. Billing does not.

Routines have no separate price. They draw down your Pro, Max, Team, or Enterprise subscription like any interactive session, subject to a per-account daily run cap during the research preview. One-off runs are exempt from the daily cap but still consume subscription usage. If you already pay for Max and have headroom, a nightly PR review routine is effectively “free” — until you hit the cap.

Managed Agents bills on two dimensions:

  • Tokens at standard model rates (Opus 4.8: $5/M input, $25/M output as of June 2026).
  • Session runtime at $0.08 per session-hour, accrued only while the session status is running. Idle time is free.

Anthropic’s worked example: a one-hour Opus 4.8 session with 50K input and 15K output tokens costs $0.705 total — $0.625 in tokens, $0.08 in runtime. A nightly job at that shape runs around $21/month. Predictable, itemized, on the company card rather than your personal Max plan.

Routines are capped subscription usage. Managed Agents is metered infrastructure. Neither collides with the other’s billing model — which is exactly why picking the wrong one hurts.

When neither scheduler is enough

Back to the fictional blog scout. The workflow:

  1. A research agent scans feeds and ranks ideas.
  2. An editor agent turns the top pick into a brief.
  3. A writer agent drafts from the brief.
  4. A human approves before anything publishes.

A routine or scheduled deployment runs one autonomous session per trigger. It cannot pause for human approval, hand off to a different agent persona, or queue follow-up work for someone else. You need an external orchestrator — cron plus API, GitHub Actions, n8n, a workflow tool — when recurring work is organizational, not personal. The scheduler is dumb; the workflow engine is smart.

Other reasons to stay outside both Anthropic primitives:

  • Local state. Routines run cloud-only — no files on your laptop, nothing behind your firewall beyond the environment allowlist.
  • Sub-hourly cadence on a subscription. Routines reject cron more frequent than one hour. Managed Agents goes to the minute — but if the job is a single model call with no tools, sandbox, or MCP, a cron job wired to the Claude API directly (token billing only, no $0.08/session-hour harness fee) is often cheaper than a scheduled Managed Agent deployment.
  • Jobs already in CI. GitHub Actions with caching, secrets, and team-owned identity is mature. Migrate for connectors or persistent sandboxes, not novelty.
  • Compliance. Managed Agents is not currently eligible for Zero Data Retention or HIPAA BAA. Routines run under your personal account with no mid-run approvals.

Both surfaces are pre-GA. Keep prompts and config in version control so you can re-create the job anywhere.

Three scenarios

Personal blog ops (solo, already on Max). Start with a routine. /schedule daily PR review at 9am is the entire setup. Acting as your own GitHub identity is a feature. Watch the daily run cap. If your scout is “read these three RSS feeds and open a draft PR with notes,” a routine may be enough.

Team code review bot (shared infra, service credentials). Managed Agents scheduled deployment. Typed failure records, pause/unpause semantics, vault-scoped API keys for Sentry or Notion CLIs, company billing. The agent is a service account, not Alice’s claude.ai login.

Product-embedded agent (you are shipping agent features to customers). Managed Agents, full stop. Routines’ /fire endpoint is claude.ai-only and not part of the Claude Platform API surface. The Managed Agents harness is the supported substrate for building on top of agents — and Anthropic’s engineering post claims decoupling the model from sandboxes dropped p50 time-to-first-token roughly 60%.

For the multi-agent blog pipeline above — scout, brief, draft, human review, publish — external orchestration is still the pragmatic choice in June 2026. Neither Anthropic scheduler can own multi-step governance across agents yet.

Start here

You are…Pick
Solo dev on Pro/Max, job acts as youClaude Code Routines
Platform engineer, job acts as a serviceManaged Agents scheduled deployments
Multi-agent workflow with approvals and task trackingExternal orchestrator (CI, cron + API, workflow tool)
Compliance-sensitive (ZDR, HIPAA)Pause — evaluate self-hosted Managed Agent sandboxes first

Match the scheduler to the shape of the work, not the hype cycle. A nightly triage job — one prompt, one repo, one outcome — belongs in a routine or scheduled deployment. A pipeline that waits on humans and hands off between agents does not.

Which scheduler are you using for recurring agent work — and what broke first?