Settings-based scheduled tasks that run on time or during DeepSeek off-peak hours, with one-time and daily schedules backed by durable task state.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
dsh-plugin-automations
Scheduled tasks for the DeepSeek Harness Web Profile: run once or on a standard six-field Cron schedule, either on time or during DeepSeek off-peak hours.
Features
- Settings-page form and task list with 5-second polling.
- Two execution modes: on time and when idle (valley hours).
- Two schedule types: once and standard six-field Cron expressions. Cron is evaluated in the host's local timezone.
when_idleruns outside Beijing peak hours (09:00-12:00and14:00-18:00) and automatically defers to the next valley window.- Optional Session title templates support all task fields and Moment-style datetime formats, for example
Daily Feed · {{scheduledAt:YYYY-MM-DD}}. - Durable task state through
ctx.storageDomain. - One serialized scheduler pump persists
runningbefore launching the runner. - Each occurrence uses an ordinary isolated Session with the default Agent preset, model, and Host workspace root.
- Fixed 30-minute execution timeout and explicit
host_interruptedrecovery. - Strict JSON API validation, request-size limits, same-origin checks, and a custom mutation header.
- Automated messages use
{ kind: 'plugin', plugin: 'dsh-plugin-automations' }and never impersonate direct human input.
The full behavioral contract is documented in SDD.zh-CN.md.
Installation
dsh plugin add (recommended)
Install into the Web profile and restart DSH after installation.
From GitHub
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
From npm
Once the package is published to npm:
dsh plugin --profile web add dsh-plugin-automations
If you run DSH through npx, use the equivalent command:
npx @deepseek-ai/dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
Verify the composed profile and restart the Web app:
dsh --profile web --dump-config
dsh web
Then open Settings → 定时任务 (Scheduled Tasks).
Local checkout (development)
git clone https://github.com/Sev7een/dsh-plugin-automations.git
dsh plugin --profile web add ./dsh-plugin-automations
Remove
dsh plugin --profile web remove dsh-plugin-automations
Usage
Execution modes
| Mode | Behavior |
|---|---|
on_time |
Creates an isolated DSH Session and starts as soon as the task is due. |
when_idle |
Runs only outside Beijing peak hours; a task due during peak hours waits for the next valley window. |
Schedule types
| Schedule | Behavior |
|---|---|
once |
Reaches a terminal state and does not run again. |
cron |
After each terminal occurrence, computes the next matching occurrence. A failed occurrence is not retried. |
HTTP API
POST /dsh-scheduled-tasks/api/v1/tasksContent-Type: application/jsonX-DSH-Scheduled-Tasks: 1- Body:
{ prompt, schedule, mode, sessionTitleTemplate? }
GET /dsh-scheduled-tasks/api/v1/tasks
curl -X POST http://127.0.0.1:3080/dsh-scheduled-tasks/api/v1/tasks \
-H 'Content-Type: application/json' \
-H 'X-DSH-Scheduled-Tasks: 1' \
-d '{
"prompt": "check project tests",
"schedule": { "type": "cron", "expression": "0 0 8 * * *" },
"mode": "on_time",
"sessionTitleTemplate": "Daily Feed · {{scheduledAt:YYYY-MM-DD}}"
}'
The MVP has no edit, delete, pause, cancel, retry, or pagination endpoints.
Development
npm install --legacy-peer-deps
npm run check
npm test
npm run build
npm pack --dry-run
--legacy-peer-deps is currently needed for local development because the published @deepseek-ai/dsh-storage-domain package still carries an older peer range than the current DSH Web bundle.
License
MIT
Links
More in this category
Q00/ouroboros#integrations/dsh-plugin★ 6118
Config-only bundle that mounts Ouroboros through the DSH MCP client, exposing 36 interview, Seed, execution, evaluation, and evolution workflow tools in DSH.
loopx-project/loopx#dsh-loopx-plugin★ 6072
LoopX, a provider-neutral, local-first state kernel and control plane for long-horizon agents: keeps Goal, Todo, gate, evidence, quota, recovery, and handoff state above DeepSeek Harness, while the plugin bootstraps the CLI and skills, admits bounded same-session continuation, and adds a loopback GoalBar for the exact bound loop.
chuspeeism/dashi-taskboard#deepseek-harness★ 3244
Embeds the active installed Codex Taskboard runtime in the DeepSeek Harness sidebar, using its launcher runtime descriptor instead of a fixed port.
NanmiCoder/dsh-agent-teams★ 1829
AgentTeams multi-agent teams.
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1149
Installs a dedicated AI novel-writing preset and workbench: revisioned local project assets, a compact side drawer, and native approval-gated single-file changes.
tong-io/tongflow#dsh-tongflow★ 1033
TongFlow film-crew studio for image, voice, music and video production: the agent writes per-asset TongFlow workflow files (.tongflow.json) that run through TongFlow plugins, with an embedded workflow canvas, a shot/character/take project layout and a manga-drama template; sessions starting with @tongflow open the Studio view.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.