Workflow & Automation

dsh-plugin-automations

Sev7een/dsh-plugin-automations · ★ 2

Sev7eenCurated

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.

License
MIT
Added
2026-08-14
Maintenance
active
Install kind
github
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:Sev7een/dsh-plugin-automations

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. dsh-plugin-automations
  2. Features
  3. Installation
  4. dsh plugin add (recommended)
  5. Local checkout (development)
  6. Remove
  7. Usage
  8. Execution modes
  9. Schedule types
  10. HTTP API
  11. Development
  12. License

English | 简体中文

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_idle runs outside Beijing peak hours (09:00-12:00 and 14: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 running before 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_interrupted recovery.
  • 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

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/tasks
    • Content-Type: application/json
    • X-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