Jesse-njx/dsh-routines
dsh-routines runs scheduled agents: a routine is a named prompt + schedule + delivery stored as a YAML file under .dsh/routines/ (5-field cron, plus @daily / 'every 4h'; explicit timezone, no silent host default). The scheduler launches each due run through the headless runner as its own one-shot session — full session log equals full audit, replayable later by dsh-replay — then delivers a digest: the last assistant message when short, otherwise a one-shot summarizer call over the session log. Overlap policy is per-routine (skip / queue / cancel-previous) with timeoutMin, and delivery is a digest + run record written to .dsh/routines/runs/<runId>.json (+ .md) with optional chatnode delivery (e.g. WeChat) for v0.2; approval policy for runs is 'never'. CLI: dsh --profile ops routines list|logs.
Install
dsh plugin --profile ops add github:Jesse-njx/dsh-routinesREADME EN verified 2026-09-02 (repo Jesse-njx/dsh-routines). The scheduler + CLI live in a profile you keep running: dsh plugin --profile ops add github:Jesse-njx/dsh-routines (npm @dsh-routines/bundle labeled 'when published' — 404 not checked since GitHub is the documented real path), then dsh --profile ops (daemon mode; Ctrl-C to stop). Routine runs boot the headless profile by default. A routine is a plain YAML file — human-diffable, git-committable.
Compatibility
DSH ops profile hosts scheduler/CLI; runs execute as one-shot sessions under the headless profile; file delivery always on, chatnode delivery optional.
Details
- Repo: Jesse-njx/dsh-routines
- Category: Other
- Stars: 1
- Version: git github:Jesse-njx/dsh-routines
- Last push: 2026-08-28
- First seen: 2026-08-13
Recent updates
Named prompt+schedule+delivery YAML routines; 5-field cron/@daily/'every 4h' with explicit tz; one-shot headless sessions; digest delivery (file always, chatnode optional); overlap policy.
FAQ
- Where do routines run?
- The scheduler lives in a profile you keep running (dsh --profile ops); each due routine boots the headless profile as its own one-shot session with approval policy 'never'.
- How is the result delivered?
- A digest plus run record is written to .dsh/routines/runs/<runId>.json (+ .md) — always on — and optionally pushed to an installed conversation node (v0.2).
- What happens if a run overlaps the previous one?
- The per-routine overlap policy decides: skip, queue, or cancel-previous; a timeoutMin bounds each run.
Alternatives
Ceelog/dsh-plugins#dsh-plugin-scheduled-tasks