Schedule commands, agent prompts, and webhooks.
One CLI. Local-first. Built for humans and agents.
curl -sL schedx.run/get | bashschedx add "every 6h" \ --run "./backup.sh"
schedx add "0 6 * * *" \ --prompt "Summarize yesterday, add to my Notion" \ --agent claude
schedx add "in 2h" \ --webhook https://hooks.slack.com/T00
# schedx.yaml name: my-jobs jobs: backup: schedule: "every 6h" run: "restic backup ~/" morning-brief: schedule: "0 9 * * 1-5" prompt: "Summarize my unread PRs" slack-ping: schedule: "every 15m" webhook: "https://hooks.slack.com/T/B/X" headers: Authorization: "Bearer ${SLACK_TOKEN}"
$ schedx up + create backup [run] (aovboa) + create morning-brief [prompt] (xuv4gm) + create slack-ping [webhook] (9ocepi) Applied manifest 'my-jobs': 3 created, 0 updated, 0 drift-corrected, 0 recreated, 0 removed, 0 unchanged. $ schedx up No changes. 3 job(s) up to date for manifest 'my-jobs'. $ schedx down - removed backup [run] (aovboa) - removed morning-brief [prompt] (xuv4gm) - removed slack-ping [webhook] (9ocepi) Brought down manifest 'my-jobs': 3 job(s) removed.
$ schedx list 9ocepi slack-ping active webhook every 15m (*/15 * * * *) Next: 12th Jun at 10:30am (in 14m) aovboa backup active run every 6h (0 */6 * * *) Next: 12th Jun at 12:00pm (in 1h and 44m) xuv4gm morning-brief active prompt cron 0 9 * * 1-5 Next: 14th Jun at 9:00am (in 1 day and 22h)