DeepSeek Harness (DSH) employs a pluggable architecture. For scenarios that require periodically executed tasks (for example, checking CI status on a schedule), existing mechanisms usually rely on continuous manual intervention or existing sessions. The dsh-plugin-scheduled-tasks plugin aims to solve this problem by allowing preset trigger rules to automatically create a new session and initiate one round of conversation at specified times. It is maintained by Jeff1573.
Core Features¶
- Automatically creates a new session and initiates a conversation without manual monitoring.
- Supports daily, weekly, and fixed-interval trigger rules (minimum interval 5 minutes).
- Supports IANA time zone calculations and daylight saving time transitions.
- Includes a built-in “unattended” permission preset (
scheduled), restricted to the workspace and does not stop to request approval. - Supports multiple notification channels: Bark / WeCom / ntfy / ServerChan / Telegram / Lark / DingTalk / any Webhook.
- Supports managing tasks via tools within conversations.
- Includes a bundled patch, so no manual configuration file modifications are required after installation.
Installation and Enablement¶
Prerequisite: DeepSeek Harness is already installed (via npx @deepseek-ai/dsh web or global installation).
Recommended one-command installation:
dsh plugin --profile web add github:Jeff1573/dsh-plugin-scheduled-tasks
After installation, restart dsh web to activate it. The plugin includes cordis.patch.yml and completes registration automatically, so no manual intervention is required.
Usage¶
After restarting, a “Scheduled Tasks” entry appears at the bottom of the sidebar.
- Create a task: Click “Create Task.” Required fields include the trigger time (daily/weekly/interval), the task name, and the content you want DSH to execute.
- Advanced options: Expand “Advanced Options.” It is recommended to set the permission preset to “unattended” (
scheduled); otherwise, scheduled runs may get stuck in the approval step. You can configure the working directory, run timeout (default 30 minutes), and failure retry policy. - Run and view: In the task list, you can “Run Now” or pause/edit. Run history records the status of each execution (success/failure/timeout). Click an entry to open the corresponding session.
- Notification settings: Configure notifications in the panel. Supports multiple channels such as Bark and WeCom. Notification content can include a summary of the model response (default first 200 characters).
Notes¶
- This plugin is not published to the npm registry; install it only from Git.
- Task data is stored in
~/.dsh/storages/scheduled_tasks.json. - WeCom group bots have rate limits (about 20 messages per minute). For high-frequency tasks, notify only on failure.
- Personal WeChat has no official sending API. Use WeCom or services such as ServerChan as relays.
- Notification addresses (such as Webhooks) are saved in the
SCHEDULED_TASKS_NOTIFY_URLfield of~/.dsh/.credentials.yaml. - The sidebar entry and the
scheduled_task_*tools are both located in the root context and accessible from every session.