c-schedule — Claude Code skill: recurring tasks with cost caps
Runs repeating Claude jobs through launchd or cron, keeps spending in check and sends output to Telegram, a file or a notification.
npx skills add daxaur/openpaw --skill c-schedule -a claude-codeWhat c-schedule does
This skill brings scheduling to OpenPaw. You describe a job in plain words and openpaw schedule add registers it with the system scheduler: a plist under ~/Library/LaunchAgents/ on macOS, a crontab line on Linux. Timing can be written as weekdays 8am, every 30 minutes or daily 21:00, and raw cron like 0 8 * * 1-5 works too.
Spending is capped at two levels. The daily limit sits at $5 and a job is skipped once it would push past that; every job also carries its own budget, $1.00 unless you change it. Costs land in ~/.config/openpaw/schedule-costs.json, kept for 30 days before old entries are pruned. Run openpaw schedule costs to see where you stand, or openpaw schedule set-cap 10.00 to raise the ceiling.
Output goes to Telegram, a file or a macOS notification. The file copy is written regardless of the channel you pick. Telegram delivery depends on a bridge being set up first — without it that option is dead. Test a job by hand with openpaw schedule run <id> before you let the timer own it.
What it helps with
- schedule a morning email briefing
- track GitHub notifications each evening
- watch for urgent mail every half hour
- cap what automated runs are allowed to spend
- pause a job without deleting its settings
Example prompts for the agent
- Add a weekday 8am job that checks my email and summarizes what matters.
- Set the daily cost cap to 10.00.
- Show me the costs and trigger that job manually.
How to install c-schedule
1Skills CLI (Vercel)
npx skills add daxaur/openpaw --skill c-schedule -a claude-code2Manually: put the files in place
~/.claude/skills/c-schedule/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/c-schedule/
1Skills CLI (Vercel)
npx skills add daxaur/openpaw --skill c-schedule -a codex2Manually: put the files in place
.agents/skills/c-schedule/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add daxaur/openpaw --skill c-schedule -a cursor2Manually: put the files in place
.cursor/skills/c-schedule/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install daxaur/openpaw c-schedule2Manually: put the files in place
.github/skills/c-schedule/SKILL.md1Skills CLI (Vercel)
npx skills add daxaur/openpaw --skill c-schedule -a gemini-cli2Platform CLI
gemini skills install https://github.com/daxaur/openpaw --path skills/c-scheduleManually: put the files in place
.devin/skills/c-schedule/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add daxaur/openpaw --skill c-schedule -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about c-schedule
How do I install c-schedule in Claude Code?
Run npx skills add daxaur/openpaw --skill c-schedule -a claude-code, then confirm the file landed at ~/.claude/skills/c-schedule/SKILL.md.
What does c-schedule do?
It puts Claude jobs on a launchd or cron schedule, gives each one a budget, and delivers the result to Telegram, a file or a notification.
Does c-schedule need Telegram?
No. Telegram is one delivery option and it requires a configured bridge; results are always written to a file as well.
Source text
SKILL.md · MIT
--- name: c-schedule description: Smart scheduling — automate recurring Claude tasks with cost control. Deliver results to Telegram, file, or notification. Built into OpenPaw. tags: [schedule, automation, cron, recurring, proactive, cost-control] --- # Smart Scheduling Automate recurring tasks with Claude. Jobs run on a schedule via launchd (macOS) or cron (Linux), with built-in cost caps to prevent runaway spending. ## Managing Schedules ```bash # Add a scheduled job (inline) openpaw schedule add "weekdays 8am" --run "check email and summarize the important ones" openpaw schedule add "daily 9pm" --run "review today's GitHub notifications" openpaw schedule add "every 30 minutes" --run "check if any urgent emails arrived" --model haiku # Interactive mode (prompts for all options) openpaw schedule add # List all jobs openpaw schedule list # Remove a job openpaw schedule remove <id> # Manually trigger a job openpaw schedule run <id> # Enable/disable without removing openpaw schedule enable <id> openpaw schedule disable <id> # View cost usage openpaw schedule costs # Set daily cost cap openpaw schedule set-cap 10.00 ``` ## Schedule Syntax Human-readable formats: - `weekdays 8am` or `weekdays 08:00` - `daily 9pm` or `daily 21:00` - `weekends 10am` - `every 30 minutes` - `every 2 hours` - `monday 9am`, `friday 5pm`, etc. - Raw cron: `0 8 * * 1-5` ## Cost Control - **Daily cap**: $5/day by default — jobs are skipped if the cap would be exceeded - **Per-run budget**: Each job has its own budget cap (default $1.00) - **Cost tracking**: All costs logged to `~/.config/openpaw/schedule-costs.json` - **30-day history**: Old entries auto-pruned - **View anytime**: `openpaw schedule costs` ## Delivery Methods - **telegram** — results sent directly to your Telegram (requires Telegram bridge setup) - **file** — saved to `~/.config/openpaw/schedule-results/` (always saved as backup) - **notify** — macOS notification via terminal-notifier ## How It Works 1. Jobs are stored in `~/.config/openpaw/schedules.json` 2. Each job registers as a system scheduler: - **macOS**: launchd plist in `~/Library/LaunchAgents/` - **Linux**: crontab entry 3. When triggered, `openpaw schedule run <id>` is called 4. Claude runs with the job's prompt via the Agent SDK 5. Results are delivered to the configured channel 6. Cost is recorded ## Guidelines - Use **haiku** for simple, frequent checks (cheapest) - Use **sonnet** for routine tasks like email summaries - Use **opus** only for complex analysis (expensive) - Test jobs manually first: `openpaw schedule run <id>` - Start with a higher per-run budget and reduce once you know typical costs - Check `openpaw schedule costs` to monitor spending ## Common Recipes ```bash # Morning briefing to Telegram openpaw schedule add "weekdays 8am" --run "give me a morning briefing: check email, calendar, and any GitHub notifications" --delivery telegram # Evening project summary openpaw schedule add "daily 6pm" --run "summarize what I worked on today based on git commits and recent files" --delivery file # Urgent email monitor openpaw schedule add "every 30 minutes" --run "check for urgent emails and notify me if any" --model haiku --budget 0.25 --delivery notify ```
© daxaur · MIT · daxaur/openpaw