alpacachen/dsh-automation
Run one-time or recurring tasks. Runs use a fresh visible session by default, or a confirmed pinned persisted session with no fresh fallback.
catalog descriptioncatalog 简介 / catalog description:Schedule and manage one-time and recurring Agent tasks in DeepSeek Harness
Project Overview项目介绍
This is a scheduling automation plugin for DeepSeek Harness (DSH). It lets you create one-time or recurring Agent tasks via natural language, supports RFC 5545 recurrence and IANA time zones, and enables UI-based task management. Use it when you need to schedule future or regular Agent work in DSH. Note DSH must run when tasks are due; only the latest missed task runs after restart.
这是DeepSeek Harness(DSH)的自动化调度插件,支持用自然语言创建一次性或重复的Agent任务,兼容RFC 5545规则与时区,可通过UI管理任务。适用于需要在DSH中预设未来或定期执行Agent任务的场景。注意:任务触发时DSH必须运行,重启后仅执行最近错过的一次任务。
请帮我了解并安装插件:【dsh-automation】【https://github.com/alpacachen/dsh-automation】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add @alpacachen/dsh-automation
把 alpacachen/dsh-automation 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-automation
Schedule future Agent work in DSH with one sentence.
Run one-time or recurring tasks. Runs use a fresh visible session by default, or a confirmed pinned persisted session with no fresh fallback.
Simplified Chinese · English
✨ Highlights
- 🗣️ Create naturally — tell an Agent what to do and when.
- 🗓️ Schedule precisely — one-time instants, RFC 5545 recurrence, and IANA time zones.
- 🧼 Start fresh by default — each run starts a new session unless an existing session is selected.
- 👀 Stay informed — see result summaries, duration, errors, history, and session links in one place.
- 🛡️ Limit access — choose any permission preset advertised by the DSH Host for each task.
- 🤖 Choose execution — optionally pin an Agent preset, provider/model pair, and ordered skills.
- 📌 Manually select an existing Session — bind a task to a conversation in the same workspace so future runs continue there instead of creating new sessions.
- 🧭 Start with guidance — use outcome-focused templates or a guided creation conversation.
- 🎛️ Stay in control — edit, run, pause, resume, or delete tasks from the UI.
🚀 Quick start
1. Install
dsh plugin --profile web add @alpacachen/dsh-automation
2. Restart DSH
Restart dsh web so the plugin can load.
3. Ask an Agent
Tomorrow at 9:00 AM in Asia/Shanghai, review this workspace for release blockers and create a one-time automation.
Or:
Every weekday at 6:00 PM, summarize today's changes and open work. Report only; do not modify files.
After creation, open Automations in the sidebar to manage the task.
Use New automation at any time for a guided setup, or choose a result-focused template in the empty state. Before creation, the Agent previews the name, schedule and time zone, workspace, Agent preset, provider/model, selected skills, exact Host permission, notifications, and failure-pause policy, then waits for confirmation.
📌 Manually select an existing Session
Runs create fresh sessions by default. In Edit → Execution destination, you can manually select and confirm an existing Session in the same workspace. Future runs retain its context and Agent/model configuration while applying the task's permissions. Agents cannot change this setting; a busy or unavailable target fails without creating a replacement.
📱 Message delivery (optional)
In Edit → Message delivery, choose a dsh-im bot on the same Host and a saved target, then confirm to send task replies or failure reports directly—useful for reminders and daily briefings. No pinned Session or two-way sync is required; ordinary tasks work without dsh-im installed. See the dsh-im guide to configure targets.
Delivery status is recorded separately from task results. Failed sends never rerun the task or automatically resend; an in-flight send interrupted by restart becomes unknown. Runs canceled manually or interrupted by Host shutdown do not trigger reports. “Platform accepted” does not guarantee phone receipt; keep the bot online and test delivery yourself.
🎛️ Manage and edit
Each task card lets you:
- change the name, prompt, or schedule;
- run now, pause, resume, or resume and run;
- open the latest session or any recent run;
- choose failure-only, every-completion, or no sidebar notifications;
- choose a saved Agent preset, provider/model pair, and ordered skills, or follow Host defaults;
- see or change any Host permission preset for future runs; actual permission changes require confirmation;
- retry failed runs and optionally pause after three consecutive failures;
- delete future scheduling while keeping existing sessions.

Visual recurrence editor
Common schedules do not require writing RRULE by hand:
| Settings | Meaning |
|---|---|
Daily · every 1 day |
Run every day |
Weekly · every 3 weeks · Monday–Friday |
Every third week, run Monday through Friday |
Monthly · every 2 months · day 15 |
Run on day 15 every two months |
You can also stop after a number of runs or on a date. Use Advanced RRULE for uncommon rules.

⏱️ How runs work
Schedule due → Global queue → Fresh or pinned persisted session → Agent runs → Result and session link recorded
- Automations run globally one at a time and never overlap.
- Runs time out after one hour by default; set
maxRunDurationMsin plugin config to change the limit. - Queued or running work can be stopped without moving its future schedule.
- A run active during an unexpected restart is marked outcome unknown instead of being reported as failed or retried.
- Notification-worthy results add a persistent unread badge to the Automations sidebar action.
- Successful runs clear the consecutive-failure count; tasks can optionally auto-pause after three failures or timeouts.
- DSH must be running when work is due; after restart, only the latest missed occurrence runs.
- Transient scheduler failures retry automatically with bounded exponential backoff.
- Paused occurrences are skipped; Resume & run does not move the original schedule.
- Fresh-session runs load the current definitions of selected skills; pinned-session runs keep the target's existing configuration without reinjecting them. Required execution settings that are unavailable fail the run instead of falling back.
- Permission presets with
approval: askremain interactive: unattended runs never auto-approve and may wait until the run timeout. - Existing state stays at version 1. Older tasks are normalized in memory without a startup rewrite and retain their saved execution and permission settings.
🗓️ Schedule formats
| Type | Parameters | Example |
|---|---|---|
| One-time | once_at |
2026-09-01T01:00:00.000Z |
| Recurring | rrule + time_zone + start_at |
FREQ=WEEKLY;BYDAY=MO,WE,FR |
once_atis an RFC 3339 UTC instant.rruleis one RFC 5545 rule withoutDTSTART.time_zoneis an IANA zone such asAsia/Shanghai.start_atis local wall-clock time inYYYY-MM-DDTHH:mm:ssform.
🧰 Agent tools
| Tool | Purpose |
|---|---|
automation_options |
List current Host Agent, model, skill, and permission options |
automation_create |
Create after confirming optional agent_preset, provider/model, ordered skills, permission, and policies |
automation_update |
Set or clear execution overrides and replace skills; permission changes require confirmation |
automation_list |
List tasks and current run state |
automation_run |
Queue one immediate run without changing the schedule |
automation_pause |
Pause future scheduling |
automation_resume |
Resume, optionally with one immediate run |
automation_delete |
Delete the task and cancel future scheduling |
💡 Example requests
“Every Monday at 9:30 AM, check dependencies for important updates.”
“Move the release check to Friday at 4:00 PM.”
“Resume the daily handoff and run it once now.”
“List all automations and pause the dependency check.”
The built-in release readiness, dependency watch, and daily handoff templates remain editable drafts; selecting one never sends it automatically.
License
MIT
GanyuanRan/Aegis
shengsheng90/DSH-taskboard
pengyue-polaron/deepseek-harness-genui
Jayden-X-L/forkprobe
BeforeWave/dsh-with-chatgpt
sluminositys/dsh-nested-followups
Meredith2328/dsh-sticky-note
cloader/dsh-taskboard