Preface¶
The scheduling functionality of DeepSeek Harness (DSH) is usually limited to the current conversation session. After a session is closed, reminders remain pending until someone reopens that session. This makes it impossible to wake long-running tasks at a specific point in time or trigger automated checks while the session is inactive.
The dsh-clock plugin fills this gap. It provides calendar and clock functionality, allowing a specified conversation to be woken at a chosen moment. Regardless of whether the conversation is currently closed, the system injects accurate system time and time drift, and explicitly indicates in the message whether the wake-up was late.
Feature Overview¶
- Wake conversations: Wake a conversation by keyword at a specified time, even if the conversation is closed.
- Time and drift injection: Include the scheduled time, actual time, time drift, and late warning in wake-up messages.
- Agent tools and skills: Provide a
clocktool for Agent calls (set,now,list,cancel), and include a built-inclockskill to assist conversations. - Multi-level timing: Combine in-process timers, a Windows Task Scheduler mirror, and catch-up replay at host startup to ensure accurate timing.
- Calendar panel: Provide a visual calendar and clock panel, supporting the creation of reminders directly on the calendar.
- Branch handling: Support conversation branching and prompt to copy alerts when creating a branch to prevent omissions.
- Drift tolerance: Lateness within 60 seconds is still marked as “on time.”
Installation and Enablement¶
Run the following commands in the plugin directory to complete installation and build:
npm install
npm run build
dsh plugin --profile web add link:<this-directory>
Or install directly via a Git URL:
dsh plugin --profile web add <git-url>
After installation, restart the DeepSeek Harness Web service. A “Calendar” button will appear at the bottom of the sidebar; click it to open the plugin panel.
Usage¶
Via Agent Tool¶
The Agent can directly invoke the clock tool to manage reminders. Supported parameters include:
- Set a delayed reminder: Wake up N seconds after the current time.
- Set a precise-time reminder: Wake up at a specific time point (UTC or a specified time zone).
- Query and cancel: Query the current time, list pending reminders, or cancel a specific reminder.
Example:
// 设置延迟提醒
{
"action": "set",
"afterSeconds": 2700,
"keyword": "check the build",
"note": "the release job should be done by now"
}
// 设置精确时间提醒(指定时区)
{
"action": "set",
"at": "2026-09-11T09:30:00+08:00",
"keyword": "standup",
"sessionId": "session-...",
"timeZone": "Asia/Shanghai"
}
// 查询当前时间
{ "action": "now" }
// 列出待办
{ "action": "list" }
// 取消提醒
{ "action": "cancel", "id": "a-..." }
Via Calendar Panel¶
- Click the “Calendar” button in the sidebar to open the panel.
- Click a specific date, enter the time and keyword in the calendar view, and select the target conversation.
- Click the button to confirm creation.
- The panel automatically distinguishes between “pending” and “triggered” reminders, and supports editing (pending only), immediate triggering, cancellation, or deletion.
Technical Implementation Details¶
The plugin uses a three-layer timing mechanism to ensure the reliability of wake-ups:
- In-process timers: Handle normal cases and maintain the earliest pending reminder.
- Windows Task Scheduler: Handle cases where the machine sleeps or the host is suspended, supporting
StartWhenAvailableandwakeComputer(requires configuration). - Catch-up replay: If the host was not running, automatically check at startup and resend all missed wake-up messages.
All triggers use a Claim-then-Delivery pattern to avoid duplicate delivery. The system retains triggered reminders for 7 days for traceability.
Notes¶
- Runtime dependency: Wake-up requires the DeepSeek Harness host process to be running. This is not a push notification and cannot be triggered externally when the host is off.
- One-time reminders: Only one-time reminders are currently supported; recurring tasks are not yet supported.
- Task name conflict: There is a shared task named
dsh-clock-wakein the Windows Task Scheduler; multiple Host instances on the same machine share this task name. - Panel theme: The calendar panel is a floating layer and does not support theme configuration through Shell slots.
Summary¶
By injecting time information and calculating drift, dsh-clock solves the problem that DeepSeek Harness cannot reliably schedule wake-ups outside of a session. Combined with the Agent tool and calendar panel, it helps developers achieve precise, time-based intervention in long-running tasks.