dsh-cron
Scheduled tasks (cron) for DeepSeek Harness: five-field calendar rules and cross-session durable jobs that fire followup/inject into agent sessions
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:omdsh-dev/dsh-cron说明文档
阅读完整 README ↗dsh-cron
Scheduled tasks for DeepSeek Harness: five-field cron calendar rules and cross-session durable jobs that fire a follow-up turn or an injected notice into agent sessions.
Core ships @deepseek-ai/dsh-schedule, whose reminders are session-local and limited to at / after_seconds / every_seconds. dsh-cron covers what it deliberately defers: standard cron expressions with IANA time zones, and jobs that live above any single conversation — stored in the Harness home, surviving restarts, delivered to whichever live session fits.
Install
dsh plugin --profile web add github:omdsh-dev/dsh-cron
A Git install runs the package's prepare build; pnpm ≥ 10 requires an explicit allowlist entry in the profile's pnpm-workspace.yaml (copy the exact key pnpm prints, then re-run the add):
allowBuilds:
dsh-cron: true
Verify the composed row without booting:
dsh --profile web --dump-config
Usage
Model-facing tools (registered globally, available in every agent):
cron_add—promptplus exactly one selector:cron(five fields, optionaltime_zone) orat(one-shot RFC 3339 with offset).cron_list— all jobs with ids, schedules, next fire times, and counters.cron_remove— remove by id.
Human command with the same store:
/cron list
/cron add 0 9 * * 1-5 Summarize overnight CI results
/cron add-at 2026-08-20T09:00:00+08:00 Prepare the release checklist
/cron remove cron-3
Other plugins can drive the same store through the provided cron service (add / remove / list).
Schedules
- Five numeric fields:
minute hour day-of-month month day-of-week. Supports*,*/n,a,a-b,a-b/n,a/n, and comma lists. Day-of-week accepts 0-7 (0 and 7 are Sunday). Month and day names are not supported. - When both day fields are restricted, a day matches either of them (Vixie semantics).
cronschedules interpret wall-clock fields intime_zone(default: thedefaultTimeZoneconfig). A wall time inside a DST gap is skipped; an overlap fires at its earlier instant.