Cron jobs for Claude Code, managed as
.mdfiles. Edit, commit, ask Claude to deploy.
In any Claude Code session:
/plugin marketplace add hamzafer/claude-routines
/plugin install routines@claude-routines
That's it. Type /routines:list or just say "list my routines".
$ deploy routines/daily-pr-review.md
Created trig_01ABC... (Daily PR Review, weekdays 09:00 UTC)
$ list
trig_01ABC... Daily PR Review weekdays 09:00 UTC enabled
trig_01XYZ... Alert Triage Responder API trigger enabled
$ diff personal/oslo-apartment-hunter.md
in sync
$ run trig_01ABC...
Started session: https://claude.ai/code/routines/trig_01ABC...A routine is one .md file. Frontmatter sets schedule and permissions; body is the prompt that runs.
---
name: "Daily PR Review"
cron: "0 9 * * 1-5"
env_id: env_01ABC...
allowed_tools: [Bash, Read, Edit, Grep, WebFetch]
sources:
- url: https://github.com/your-org/your-repo
---
Review every PR opened in the last 24 hours. Leave inline comments...- Read state:
list,get,pull,diff,orphans - Write changes:
deploy(auto-routes),create,update(read-modify-write safe) - Pre-flight:
validate,dry-run - Other:
run,bulk,delete
Each activates by intent ("validate this file") or by name (/routines:validate <file>).
- Reverse-engineered. The management API isn't public. Endpoints (
/v1/code/triggers) may change. - No DELETE. Use the web UI.
updateenforces read-modify-write. A partialjob_configsilently expandsallowed_toolsto a 19-tool default. If you call the API directly, beware.
examples/: three reference routines to copy fromdocs/: design specs, demo recordings, API verification notesskills/<name>/SKILL.md: the actual skill bodies
Cross-agent install via npx skills add hamzafer/claude-routines is supported for skills.sh discoverability, but the skills call Claude Code's RemoteTrigger tool at runtime, so they only function in Claude Code.
MIT. PRs welcome.