Skip to content

Cron Scheduler

Run an agent on a schedule. “Every weekday at 9am, summarise yesterday’s commits and post to #standups.” “Every hour, scan the issue tracker for new bugs and triage them.” Cron makes those happen without you sitting at the keyboard.

Built on croner. Jobs persist in ~/.ptah/ptah.db, survive Ptah restarts, and resume cleanly via the catchup coordinator after sleep/wake events.

  • 5- or 6-field cron expressions, validated by croner before save
  • IANA timezone support (also validated)
  • Per-job concurrency tracking and a global concurrency cap
  • A run history per job — succeeded / failed / skipped, with start/end times and result summaries
  • Power-monitor integration: missed slots can be replayed, ignored, or coalesced

Cron is enabled by default at the global level (cron.enabled = true), but you have zero jobs until you create one. Nothing fires unprompted.