Introduction

When running tasks with DSH (DeepSeek Harness), execution starts immediately upon message sending. If a task needs to run at a future point in time—for example, to avoid busy daytime hours—currently, one has to manually wait for the time and send a message again.

dsh-timer solves this problem: it adds a “Scheduled Tasks” module to the DSH web interface, queues messages, and automatically continues execution in the original conversation when the time comes. Below, I will introduce its features, installation, and usage.

What is it

dsh-timer (package name @deepseek-ai/dsh-timer, repository life1996cou/dsh-timer) is a “Scheduled Tasks” plugin for DSH, maintained by life1996cou, current version v0.2.0, license is MIT.

One-sentence positioning: After the scheduled time, automatically continue the task in the original conversation that generated the task with full access permissions, and support one-click off-peak scheduling.

DSH’s philosophy is “Everything is a plugin”. dsh-timer integrates into the web interface in this manner, providing a native-style Scheduled Tasks module in the toolbar below the message input box.

Core Features

Scheduled Task Switch

The switch is located to the left of the Model Selection button in the toolbar below the message input box. It turns green when enabled. The switch only controls on/off and does not automatically pop up a window:

  • When the switch is off, clicking “Send Message” sends it normally;
  • When the switch is on, clicking “Send Message” pops up a confirmation box (the popup is above the Send button).

Scheduled Sending

After the switch is enabled, enter content in the input box and click the “Send Message” button with the mouse; a confirmation box will appear where you can set the execution time (default: next minute) and execution mode (full access). Upon confirmation, the message is added to the schedule rather than being sent immediately.

Note the trigger condition: It must satisfy both “Scheduled Task” switch is on AND the “Send Message” button is clicked with the mouse. Pressing Enter (Return) will not trigger the confirmation box; it will just send normally.

One-Click Off-Peak

The confirmation box provides “Off-Peak”: one-click selection of available time slots in Beijing Time, automatically skipping the two peak periods 9:00–12:00 and 14:00–18:00; clicking again restores the original time and state.

Task List

The “Tasks” button in the module displays all tasks, with real-time status updates:

  • Pending: gray;
  • Running: displays “Running…”;
  • Completed: displays completion time (HH:MM, green);
  • Failed: red.

Supports “Cancel” for pending tasks and one-click “Clear” for all tasks.

Execution Behavior

Concurrency is unlimited; you can schedule multiple tasks simultaneously or trigger them sequentially at different times. Upon the scheduled time, tasks continue execution by default in the original conversation that generated the task with full access permissions.

Installation and Enablement

Environment requirements: DSH is locally installed and runnable, and the dsh command is in PATH; dependencies are installed via pnpm, and the plugin is installed to the web profile.

First, execute the installation command:

dsh plugin --profile web add github:life1996cou/dsh-timer

After installation, restart dsh web to load:

cd /path/to/deepseek-harness && pnpm dsh web

Then confirm it is installed:

dsh plugin --profile web list

Upgrading from v0.1.0 to v0.2.0

If you previously installed v0.1.0, the upgrade only takes two steps: re-run the installation command above (still pointing to the same repository, which will automatically update to v0.2.0), and then restart dsh web for it to take effect. The installed old task list will be retained.

There are two changes in the v0.2.0 interaction that need attention:

  • The module position has moved from the left bottom bar to the toolbar below the message input box and to the left of the Model Selection button (conversation.input.right), integrating seamlessly with the native toolbar.
  • The switch only controls on/off; the “Scheduled Send” button is no longer displayed separately; the trigger method has changed to “Switch On + Mouse Click Send Button”.

Typical Usage

Taking scheduling a scheduled task as an example:

  1. Find the “Scheduled Task” switch in the toolbar below the message input box and click to enable (it turns green).
  2. Enter the text that needs to be executed later in the input box.
  3. Click the “Send Message” button with the mouse (Pressing Enter is ineffective).
  4. In the popped-up confirmation box, set the execution time (default: next minute), and optionally choose “Off-Peak” to fill in an available time slot nearby.
  5. After confirming the mode is full access, click “Confirm Schedule”.
  6. The task enters the “Tasks” list, updating in real-time based on status; at the scheduled time, it automatically continues execution in the original conversation.

The task text is taken from the draft in the current input box; after confirmation, the draft will be cleared.

Applicable Scenarios and Notes

Suitable scenarios: DSH web users who need to schedule tasks to run at a future time, want to avoid the peak hours 9:00–12:00 and 14:00–18:00 in Beijing Time, or need to queue multiple scheduled tasks simultaneously.

A few notes:

  1. The plugin runs with the permissions of the current dsh process, and tasks execute with full access permissions by default, which are relatively high. Before installation, it is recommended to read the repository source code and license to confirm it is acceptable.
  2. The trigger condition can be tricky: pressing Enter will only send normally; you must click the “Send Message” button with the mouse to pop up the confirmation box.
  3. The repository only contains the one plugin dsh-timer; the README only contains usage instructions, not code/API documentation.

Conclusion

dsh-timer turns “Scheduled Task Continuation” into a native module on the DSH web interface: turn the switch on, click send, fill in the time. With just three steps, you can schedule a task, and with off-peak scheduling and real-time task lists, it is suitable for scenarios where execution times need to be shifted to idle periods.

  • Community Directory: https://www.skillhub.cn/plugins/life1996cou/dsh-timer
  • GitHub: https://github.com/life1996cou/dsh-timer