← Back to home@ds-hu

dsh-auto-task-center

Task Center for DeepSeek Harness: scheduled and webhook tasks that deliver into a session, plus a 任务管理 agent preset

Stars
1
Language
JavaScript
Created
Oct 22, 2026
Updated
Oct 23, 2026

Introduction

Task Center for DSH

任务中心 / Task Center — scheduled, HTTP- and hand-triggered tasks for DeepSeek Harness. Add a task once, and DSH opens a session or messages an existing one when the task fires.

Task Center in the right sidebar: every row carries its trigger, target, model and permission

npm license 中文


A tab, right where you work

Task Center is a tab in the session's right sidebar: no new window, no separate app. Every row answers three questions at a glance — is it on, when does it fire next, where does it deliver. A disabled task stays in the list with its settings and history intact.

One task, one source

A task is caused by exactly one thing, and every row says which:

  • A schedule — one-off, fixed interval, daily, weekly, or cron. Next 5 runs is computed in the time zone you chose, so a wrong cron expression shows up before you save it.
  • An HTTP request — a webhook URL with its own secret, for CI, a GitHub hook, or a shell one-liner.
  • You — a manual task has no clock and no address. It runs when you press Run now, and at no other time.

A daily 09:00 trigger in Asia/Shanghai with the next five runs listed

Running a scheduled task by hand is still a manual run, and the record says so: Manual · Session 3f2a1c rather than pretending the schedule fired. The agent can fire one too — task_center has a run action.

A manual task: no schedule, a Run now button, and a run record marked Manual

Where it runs, on which model, with which permission

Deliver into a brand-new session or into an existing conversation. For a new session the task decides:

  • the workspace and the agent preset;
  • the model — the cheap one for routine digests, the deep one for real reasoning;
  • the reasoning effort — off, low, high, max: whatever that model declares. The cheap model at low effort for a digest, the deep one at max for a refactor that has to think;
  • the permission — read only, workspace write, or full access, the same presets DSH itself offers. It is in force before the first turn, so a nightly job is boxed in from its very first action.

Delivery settings: new session, workspace, agent preset, model and permission

The message is yours to write and arrives as a normal user message, so slash commands still work: /goal turns the trigger into an autonomous goal run, and any /skill-name loads that skill.

The model, effort and permission pickers appear only when the Host offers them, and leaving any of them empty follows the deployment default. The effort list comes from the chosen model, so it can never name something that model cannot do. If a model or preset later disappears, the task is never silently re-pointed at something else: the run record says what failed instead of delivering into the wrong sandbox.

With dsh-better-workspaces installed, a new session can also land in a fresh worktree made per run: each run branches off the base you pick, so a nightly job never touches the checkout you have open.

HTTP triggers and the run record

An HTTP task gets its own URL and secret, on DSH's own port. The request body replaces {{payload}} in your message, and Rotate secret makes a leaked URL useless in one click.

curl -X POST "http://127.0.0.1:3080/task-center/hook/<task-id>/<secret>" -d '{"branch":"main"}'

Every run leaves a record naming its source — schedule, HTTP, or manual: delivered, skipped because DSH was closed, or failed because the target was gone. A task that keeps failing is flagged needs attention instead of quietly doing nothing.

Run history: two deliveries, each naming its session, model and permission

A preset that hands scheduling to the agent

Installing the plugin adds an agent preset, 任务管理: Standard mode without the built-in reminder tools, plus a task_center tool — so you can say "every weekday at 9, summarise the repo" and the agent writes the task itself. It can list, edit, delete, and fire one on demand.

The panel borrows DSH's theme tokens, so it looks native in light and dark alike.


Install

dsh plugin --profile web add @ds-hu/dsh-auto-task-center

Restart dsh web, open any session, and pick Task Center from the right sidebar's start page. The 任务管理 preset shows up in the composer's mode menu.

Behind a reverse proxy, a tunnel, or Cloudflare Access, the panel keeps working: a write is checked against the host your browser actually used, not the loopback address DSH bound.

Uninstall

The plugin writes only under $DSH_HOME/task-center/ and registers no install scripts, so removing it leaves no services, no timers and no patched configuration behind.

dsh plugin --profile web remove @ds-hu/dsh-auto-task-center
dsh-auto-task-center purge --yes   # optional: also delete the stored tasks

Move sessions off the 任务管理 preset first, then click away the one dead tab DSH keeps in your browser. Details in Uninstall.

Documentation

DocumentWhat is in it
docs/TECHNICAL.mdArchitecture, data model, HTTP API, scheduling rules, uninstall
CONTEXT.mdThe vocabulary this plugin is built on
docs/adrWhy the design is what it is

License

MIT. See LICENSE.