RoutineOS is a free, MIT-licensed Claude Code plugin and framework for Claude routines, the scheduled Claude agents that do recurring work in the cloud. It gives each routine typed settings, a linter, templates, approval gates and a mobile Desk, and it proposes changes from your keep and drop decisions, applied only on your yes.
Install: /plugin install routineos --marketplace devkindhq/routineos (Claude Code 2.1.275 or later). Docs: docs.routineos.org.
Try the live demo Desk, with demo data. It is read only.
- Home: routineos.org
- Docs: docs.routineos.org (source: devkindhq/routineos-docs)
- Docs MCP server:
https://docs.routineos.org/api/mcp
It runs on the Claude plan you already pay for, and RoutineOS itself is free (MIT).
A routine learns from what it sees (a list item that matched nothing for ten runs, runs that hit a limit) and from what you decide on the Desk (records you keep that a setting dropped, or drop that it kept). Code does the counting. When the pattern holds, one suggestion lands in your Inbox, such as "Add hydrogen to title_keywords", with the signal and evidence count. You accept, reject or snooze it. A routine never applies its own suggestion. See Learning.
- Safe by default. First runs are report-only, nothing sends, posts or deletes without an approval gate, and fetched content is data.
- Conventions.
new --typescaffolds aserverless,watch,approval-gatedorinteractiveroutine, and the linter fails on a setting with no default, a schedule faster than hourly, or a prompt without the untrusted-data clause. - The Desk. One private page per workspace shows what was kept, what was dropped and why, every run, and open approvals.
- Templates and migration. Install a routine from a pack, or convert an n8n workflow, Windmill flow or described Zap with
routineos migrate.
Rails, Django and Laravel gave web apps a shape. RoutineOS borrows the shape, not the code:
| RoutineOS | Rails | Django | Laravel |
|---|---|---|---|
| Routine type | app template | project template | starter kit |
| Records and Store | models, database | models, ORM | Eloquent |
| Settings | config, credentials | settings | config, .env |
| Producers | jobs | management commands | queued jobs |
| Gates | before_action, approvals | permissions, admin actions | policies, gates |
| Desk | views | templates | Blade views |
| CLI | rails g, console | manage.py | artisan |
Install the Claude Code plugin in Claude Code 2.1.275 or later:
/plugin install routineos --marketplace devkindhq/routineos
The CLI needs Python 3.11 or newer (standard library only). From the repo root:
python3 skills/routineos/scripts/routineos.py doctor
python3 skills/routineos/scripts/routineos.py new my-watch --type watch
python3 skills/routineos/scripts/routineos.py lint my-watch
The Quickstart builds a full example routine, Desk included.

Each template is one pack file listed in catalog/index.json. Piloted means a real run checked it. Digest and tracker starters are coming soon.
- candidate-shortlist: unpiloted, watch. Scores new applicants against your rubric with evidence per criterion and suggests a shortlist. It never rejects anyone.
- content-calendar: unpiloted, approval-gated. Drafts cited posts from your topics and sources in your house style, and publishes only what a person approves.
- engineering-digest: unpiloted, watch. A daily digest of open pull requests, issues and failing builds, with the stale ones flagged.
- inbox-triage: unpiloted, approval-gated. Labels new mail threads, drafts replies in your style, and sends a reply only after a person approves it.
- invoice-exceptions: unpiloted, watch. Reads incoming invoices and flags duplicates, large amounts and new vendors for a person to check. It never pays.
- jobs-watch: piloted, watch. Tracks public job postings for commerce and automation roles, links each role to its company, and puts the few that need a person in the Inbox.
- meeting-brief: unpiloted, watch. Before each outside meeting, researches the other company and writes a short, cited brief to the Desk.
- shopify-content-qa: unpiloted, watch. Checks a Shopify store's public pages each day for missing descriptions, alt text, broken links, placeholder text, SEO gaps and price slips, and tracks what changed. It never edits the store.
- site-compliance-review: unpiloted, watch. Reviews a website's pages each day against a rule pack you supply, flags wording that may breach a rule with severity, a screenshot and boxed notes, and tracks decisions. It never changes the site.
- support-gap-digest: unpiloted, watch. Each week, groups repeated support questions and flags the ones your help pages do not answer yet.
- watch: piloted, watch. Watches a list of sources for new and changed items and writes one report per run, even in a quiet week.
- weekly-marketing-report: piloted, watch. Each week, compares marketing metrics with the week before, audits a few key pages, and flags big moves. Live demo Desk.
python3 skills/routineos/scripts/routineos.py pack list catalog/index.json
python3 skills/routineos/scripts/routineos.py pack install catalog/meeting-brief.json --dir my-brief
Write your own: authoring, pack keys.
Claude scheduled tasks are a research preview and may change.
- Each run starts on a fresh Python 3.11 sandbox and cannot fire another routine: pilot-verified.
- Approval gates over email, and Slack sends with the connector set to "Ask for approval": pilot-verified.
- The artifact database holds 25,000 documents per artifact, 256 KiB each: pilot-verified, though the official artifact docs say artifacts have no backend.
- Minimum schedule interval is one hour: docs-stated, enforced by lint.
- "Run now" from the Desk has no low-latency path; it is an action queue: docs-stated.
- Repo-hosted scripts run inside a run when called by path: owner-verified. A script writing to the Desk db or a connector is unverified, so the model does every write.
- The API trigger (webhook) fires a routine from outside Claude: owner-verified. That the fire text reaches the run as untrusted data is docs-stated.
- Sheet or Drive writes need the Google Drive connector: unverified.
- Workers AI called directly from a run is blocked by the sandbox: pilot-verified. Through a connector: unverified.
- How it compares: next to Rails, Django and Laravel, and next to automation tools
- Honest limits: every platform claim with its tag
- Contributing
The docs and the template catalog are also a free MCP server, so Claude can read them while it builds a routine with you. No account, no sign in, read only.
Claude Code: installing the plugin connects it for you. Without the plugin:
claude mcp add --transport http routineos https://docs.routineos.org/api/mcpAdd --scope project to commit it to the repo's .mcp.json, so cloud scheduled routines and everyone on the repo get it too.
Claude (web and Claude Desktop): Customize > Connectors, + Add, Add custom connector, name it RoutineOS, paste https://docs.routineos.org/api/mcp, choose No sign in, then Add. Turn it on in a chat from + > Connectors. Free plans allow one custom connector; on Team and Enterprise an owner adds it under Organization settings > Connectors.
Then ask Claude things like "search the RoutineOS docs for gates" or "set up the jobs watch template". Tools and details: The RoutineOS MCP.
A routine is a Claude Code configuration (a prompt, repositories and connectors) that runs on Anthropic's cloud on a schedule, on an API call or on a GitHub event, so it keeps working when your laptop is closed. Anthropic now calls them scheduled tasks; the earlier name, routines, still appears in the app, the /routines command and the API. They are a research preview. See Anthropic's docs.
Run /schedule in Claude Code (for example /schedule daily PR review at 9am) or create a task at claude.ai/code/routines. The shortest interval is one hour. RoutineOS adds the parts a bare schedule lacks: settings with defaults, a linter, approval gates and a Desk that shows every run.
It is a different shape. n8n, Zapier and Make wire steps into a fixed flow; a RoutineOS routine is a Claude agent that makes judgment calls, shows its reasons and asks before it acts. If you already have an n8n workflow, routineos migrate n8n <file-or-url> --out <dir> converts it into a routine pack. The result is report-only and unpiloted, and MIGRATION.md lists what a person must finish. See how it compares.
Code counts the signals: records you keep that a setting dropped, list items that match nothing, runs that hit a limit. When a pattern holds, the routine proposes one settings change in your Inbox with its evidence. You accept, reject or snooze it. A routine never applies its own suggestion.
No. The first run is report-only, and every send, post or delete goes through an approval gate.
RoutineOS is free and MIT licensed. Routines run on the Claude plan you already pay for; Anthropic lists scheduled tasks on Pro, Max, Ultra, Team and Enterprise plans.
Yes. The docs and the template catalog are a free, read-only MCP server at https://docs.routineos.org/api/mcp. See Docs inside Claude.
MIT, Devkind, 2026. Built by Devkind.
