schedule
Skill4 starsChanged 4 months agoMITView on GitHub
Manages recurring and one-off scheduled tasks. Session-scoped scheduling via CronCreate/CronDelete/CronList. Documents the cloud path for tasks that need to survive machine sleep or network drops.
35 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- atinder-harika/reel-reactortheir own version, first seen Nov 8, 2026
- matthewwong525/WongStacktheir own version, first seen Nov 8, 2026
- onetapstudiogames/1f3d9-citylifetheir own version, first seen Nov 8, 2026
- SethGammon/Citadeledited, first seen Nov 4, 2026
- maya8237/MEOWtheir own version, first seen Nov 1, 2026
- bks-lab/open-bridgetheir own version, first seen Oct 30, 2026
Used with
Projects with it also use send-user-message, tinyagi-admin and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Maliot100XSkillsend-user-message
Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp). Use when the agent needs to notify, alert, or send an unsolicited message to a user — especially during heartbeat invocations, scheduled tasks, or when the agent wants to reach out without a prior user message in the current conversation. Triggers: 'send message to user', 'notify user', 'alert user', 'message the user on discord/telegram/whatsapp', or any need to proactively communicate with a paired sender.
Also in 4 projects that use this
jlia0Skilltinyagi-admin
Manage and operate the TinyAGI system itself — agents, teams, settings, queue, tasks, daemon lifecycle, and source code. Use when the agent needs to: list/add/remove/update agents or teams, check queue status, view logs, start/stop/restart TinyAGI, change settings (provider, model, channels), send messages to the queue, manage tasks, retry dead-letter messages, view recent responses, modify TinyAGI source code or configuration, or perform any administrative operation on the TinyAGI platform. Triggers: 'manage tinyagi', 'add an agent', 'remove a team', 'check queue', 'view logs', 'restart tinyagi', 'change provider', 'update settings', 'create a task', 'modify tinyagi code'.
Also in 3 projects that use this
thtskaranSkillconsolidate-memory
Reflective pass over your memory files — merge duplicates, fix stale facts, prune the index.
Also in 5 projects that use this
gildasfremontSkillsetup-cowork
Guided Cowork setup — install a matching plugin, try a skill, connect tools.
Also in 3 projects that use this
anyprotoSkillskills-manager
Context-aware routing to skills and hooks management. Use when troubleshooting skill activation, fine-tuning keywords, or managing the automated documentation system.
Also in 3 projects that use this
OpenAISkillimagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG/vector/code-native assets, extending an established icon or logo system, or building the visual directly in HTML/CSS/canvas.
Also in 4 projects that use this
Other versions35 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- SethGammon/Citadel★ 92793% same
Wrote their own version · 34
- jlia0/tinyclaw★ 3.6ksame name
- TinyAGI/tinyagi★ 3.6ksame name
- TinyAGI/tinyclaw★ 3.6ksame name
- boldsoftware/shelley★ 713same name
- svy04/ballast★ 73same name
- invergent-ai/surogates★ 28same name
- Hassaan146/claude-skills★ 18same name
- thtskaran/claude-skills★ 18same name
- nickalie/nclaw★ 15same name
- woxiangyangzhimao/skills★ 14same name
24 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository50 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- architectSkill
- archonSkill
- ascii-diagramSkill
- autopilotSkill
- costSkill
- create-appSkill
- create-skillSkill
- daemonSkill
- dashboardSkill
- decision-mapSkill
- deploy-stewardSkill
- designSkill
- doc-genSkill
- doSkill
- evolveSkill
- experimentSkill
- fleetSkill
- grillSkill
- housecleanSkill
- improveSkill
- infra-auditSkill
- learnSkill
- live-previewSkill
- loopSkill
- mapSkill
- marshalSkill
- merge-reviewSkill
- organizeSkill
- postmortemSkill
- prdSkill
- pr-watchSkill
- qaSkill
- refactorSkill
- research-fleetSkill
- researchSkill
- reviewSkill
- scaffoldSkill
- session-handoffSkill
- setupSkill
- systematic-debuggingSkill
- telemetrySkill
- test-genSkill
- triageSkill
- unharnessSkill
- verifySkill
- watchSkill
- wikiSkill
- workspaceSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 15 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 33 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 50
When running in Codex and the user wants the schedule to survive the current terminal session, create a Codex Automation plan instead of a …
- Very specific: line 58
If .planning/ does not exist, create it before writing automation state.
- Very specific: line 61
Only when --remote is explicitly passed:
- Distinctive: line 94
If CronList is not available: output a helpful error (see Fringe Cases).
- Distinctive: line 100
Create a recurring task.
- Distinctive: line 108
If confirmed: call CronCreate with the expression and command
- Distinctive: line 127
If the user provides a raw cron expression directly, use it as-is without converting.
- Distinctive: line 134
Remove a scheduled task by ID using CronDelete.
- Very specific: line 136
If the user doesn't know the ID: run /schedule list first, show the list, and ask which one to remove.
- Distinctive: line 155
When the session ends (Claude Code closes or the conversation is reset), all session-scoped schedules are cleared.
- Distinctive: line 175
Call RemoteTrigger with the desired delay and the command to run
- Distinctive: line 177
When the trigger fires, it wakes a new Claude Code session and runs the command
- Distinctive: line 188
Ambiguous interval: Ask for clarification before proceeding.
- Distinctive: line 205
Always confirm before creating (CronCreate is a side effect)
- Distinctive: line 206
Always show the cron expression alongside the natural-language description
- Distinctive: line 207
Always provide the ID after creation so the user can remove it
- Distinctive: line 208
Never leave a user unable to remove a schedule they created
- Very specific: line 215
After add: "Scheduled. ID: {id}.
- Very specific: line 216
After remove: "Removed schedule {id}."
- Very specific: line 217
After list or status: the active schedule list (or "No active schedules.")
- Distinctive: line 218
After any error: a clear message and actionable suggestion.
“Common” is measured: kept by at least 6 in 10 of the 33 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/schedule — Task Scheduling
Orientation
Use when: scheduling a recurring or one-off remote agent run (cron-style, outside the current session). Don't use when: repeating work within the current session (use /loop); continuous unattended campaigns (use /daemon).
Default execution path (READ FIRST)
/schedule add does NOT call CronCreate by default. It shells out to
node scripts/local-schedule.js which installs a native OS entry (Windows
Task Scheduler or Unix cron). Only pass --remote to use Anthropic's routine
system, and only after explicit user confirmation.
Why: CronCreate counts against the account-wide 15 routine runs / 24h
cap; every fire of the scheduled task counts. See
docs/ROUTINE-QUOTA.md.
Default flow — /schedule add "<expr>" "<command>" (no --remote)
Run:
node scripts/local-schedule.js add "<expr>" "<command>"Then report the returned ID and the removal command. This survives session
end, machine reboot, and consumes zero routine quota. Use
/schedule list and /schedule remove {id} (which also shell out to
local-schedule.js) by default.
Codex automation lane
When running in Codex and the user wants the schedule to survive the current terminal session, create a Codex Automation plan instead of a local OS entry:
node scripts/codex-automation.js plan --type schedule --cadence "<expr>" --command "<command>" --writeGive the returned prompt to the Codex app automation surface and keep the generated .planning/codex-automations/{id}.json as the durable Citadel record.
If .planning/ does not exist, create it before writing automation state.
Opt-in routine flow — /schedule add --remote ...
Only when --remote is explicitly passed:
- Confirm: "This will use
CronCreate, which counts against your 15 routine runs / 24h quota and is cleared at session end. Continue? (y/N)" - On confirmation, run the
CronCreate-based flow documented below.
The rest of the protocol documents the full CronCreate flow for reference
and for --remote invocations.
When to Route Here
- "run pr-watch every hour"
- "check my PRs automatically"
- "schedule a thing"
- "remind me to run tests every 30 minutes"
- "set up a recurring task"
- "list my scheduled tasks"
- "cancel the PR check"
- Any mention of "schedule", "recurring", "every N minutes/hours", "cron"
Protocol
/schedule list
List all currently scheduled tasks using CronList.
Output format:
Active schedules (N):
[id] {description} — {cron expression} — next run: {time}
No schedules active.If CronList is not available: output a helpful error (see Fringe Cases).
/schedule add "{description}" {/skill-or-command}
Create a recurring task.
Steps:
- Parse the user's description to extract:
- Natural language interval: "every 30 minutes", "hourly", "every day at 9am"
- The skill or command to run:
/pr-watch,/do status, etc.
- Convert natural language to a cron expression (see Conversion Table below)
- Confirm with user: "I'll run
{command}{natural-language-interval} (cron:{expression}). OK?" - If confirmed: call CronCreate with the expression and command
- Output: "Scheduled. ID: {id}. Use
/schedule remove {id}to cancel."
Cron Expression Conversion Table:
| Natural Language | Cron Expression |
| every minute | * * * * * |
| every 5 minutes | */5 * * * * |
| every 15 minutes | */15 * * * * |
| every 30 minutes | */30 * * * * |
| every hour / hourly | 0 * * * * |
| every 2 hours | 0 */2 * * * |
| every 6 hours | 0 */6 * * * |
| every day / daily | 0 9 * * * (default 9am) |
| every day at {H}am/pm | 0 {H} * * * |
| every weekday | 0 9 * * 1-5 |
| every Monday | 0 9 * * 1 |
If the user provides a raw cron expression directly, use it as-is without converting. Validate it has 5 fields before accepting.
/schedule remove {id}
Remove a scheduled task by ID using CronDelete.
If the user doesn't know the ID: run /schedule list first, show the list,
and ask which one to remove.
Output: "Removed schedule {id} ({description})."
/schedule status
Show all active schedules and their next run times. Equivalent to /schedule list
with additional context about what each task does and when it last ran (if available).
Session-Scoped vs. Cloud-Persistent Scheduling
Session-Scoped (CronCreate)
CronCreate schedules tasks that run during the current Claude Code session only. When the session ends (Claude Code closes or the conversation is reset), all session-scoped schedules are cleared.
Use session-scoped when:
- Running checks during an active work session ("remind me every 30min to commit")
- Polling for PR feedback while you're at the computer
- Triggering skill runs during a long coding session
Cloud-Persistent (RemoteTrigger)
For tasks that need to survive machine sleep, network drops, or session restarts, use RemoteTrigger — a one-off cloud trigger that fires from Anthropic's infrastructure rather than your local session.
Use cloud-persistent when:
- The task needs to run overnight or while you're away
- You want notifications when you return to your machine
- The interval spans multiple days or calendar dates
How to set up a one-off cloud trigger:
- Call RemoteTrigger with the desired delay and the command to run
- Claude Code registers the trigger in Anthropic's cloud scheduler
- When the trigger fires, it wakes a new Claude Code session and runs the command
- Results are delivered as a notification
Note: RemoteTrigger requires Claude Code with cloud features enabled (Pro or Team plan). CronCreate works on all plans but is session-scoped only.
Fringe Cases
CronCreate not available: Output error; suggest OS cron/Task Scheduler. Never fail silently.
Ambiguous interval: Ask for clarification before proceeding.
Raw cron expression: Accept without conversion; validate 5 fields.
Every-minute schedule: Warn about 60 fires/hour; suggest 5m or 15m instead.
No schedules when listing: "No active schedules. Use /schedule add to create one."
Pause requested: Explain pause isn't supported; remove and recreate instead.
Contextual Gates
Disclosure: "Creating schedule: {command} at {cron expression}. OK?"
Reversibility: amber — creates OS cron entries or CronCreate sessions (side effects outside the repo); undo with /schedule remove {id}
Trust gates:
- Any: confirms before creating; shows cron expression before accepting
Quality Gates
- Always confirm before creating (CronCreate is a side effect)
- Always show the cron expression alongside the natural-language description
- Always provide the ID after creation so the user can remove it
- Never leave a user unable to remove a schedule they created
Exit Protocol
/schedule does not produce a HANDOFF block. After each action, output a concise confirmation or list and wait for the next command.
- After
add: "Scheduled. ID: {id}. Use/schedule remove {id}to cancel." - After
remove: "Removed schedule {id}." - After
listorstatus: the active schedule list (or "No active schedules.") - After any error: a clear message and actionable suggestion.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

