Introduction

After DeepSeek Harness (DSH) version 0.2.0, the official automated scheduling became an optional bundle and is disabled by default. This means that if you upgrade DSH, scheduled tasks that previously depended on it may suddenly stop working and require manual enabling. In addition, the official dsh-schedule is mainly for session-bound reminders and cannot meet cross-session, persistent scheduling requirements.

If you need a way to trigger tasks across the TUI, Web, or Feishu interface and require support for standard Cron expressions or fixed intervals, dsh-cron is a ready-to-use solution. It is a standalone plugin that does not depend on the official bundle, and once installed it can run on all Profiles.

Core Features

This plugin provides DSH with basic scheduled-task capabilities. Its core capabilities are as follows:

  • Four tools: It registers cron_create (create), cron_list (list), cron_delete (delete), and cron_report (report) for Agent invocation.
  • Two rule shapes:
    • cron: Supports standard 5-field calendar expressions (e.g. 0 9 * * 1-5).
    • every_seconds: Supports fixed intervals (e.g. 600 seconds).
  • Mandatory validity period: To prevent Cron tasks from running indefinitely, all recurring tasks must set a validity window (max_duration_seconds or end_at). After expiration, an expired status is sent and the task is archived.
  • Missed execution handling: If the Agent is offline or has no active session when a task is due, that time point is skipped and recorded; it will not be executed later when the Agent comes online. This aligns with the definition of Cron (“execute at time X”).
  • Persistent storage: Task data is stored under the $DSH_HOME/storages/cron/ directory.

Installation and Activation

Before installing, ensure your environment meets the following requirements:
* DeepSeek Harness version >= 0.2.0-rc.2
* Node.js version >= 22.19.0

Run the following command to install the plugin:

dsh plugin --profile tui add @aiwayds/dsh-cron

After installation, the plugin is registered automatically and requires no additional configuration toggling.

Typical Usage

dsh-cron can be used through Agent tool calls or human CLI operations.

Agent Tool Call Examples

The Agent can call the tools directly during a conversation. Here are some typical parameter combinations:

  1. Fixed interval task:
    cron_create({ every_seconds: 600, prompt: '检查 CI run 1234,终态则 cron_delete 本任务并汇报', max_duration_seconds: 7200 })
  1. Calendar rule task:
    cron_create({ cron: '0 9 * * 1-5', prompt: '生成本周周报', end_at: '2026-12-31T23:59:59+08:00' })
  1. Immediate execution mode:
    cron_create({ cron: '0 * * * *', prompt: '检查磁盘使用率', delivery_policy: 'steer', execution_mode: 'self', max_duration_seconds: 86400 })

CLI Usage Examples

Human users can also use the commands directly in the CLI:

/cron list
/cron create '0 * * * *' '检查 CI run 1234,终态则删除本任务' --for=7200
/cron create '0 9 * * 1-5' '生成周报' --until=2026-12-31T23:59:59+08:00
/cron delete a1b2c3d4
/cron history 20

Use Cases and Notes

  • Use cases: Suitable for cross-session, long-lived recurring tasks, such as daily scheduled server status checks, regular report generation, monitoring specific events, etc.
  • Runtime environment: The plugin runs as a standalone process and does not depend on the official automated scheduling bundle. If the official bundle is disabled, this plugin still works normally.
  • Data directory: Note that data is stored under the $DSH_HOME/storages/cron/ directory. Uninstalling the plugin does not automatically delete this historical data; if you need to clean it up, delete the directory manually.

Summary

dsh-cron addresses the issue after DSH 0.2.0 where the official schedule is disabled by default, providing a lightweight, standalone scheduled-task solution. Through mandatory expiration and missed-skip mechanisms, it ensures task controllability.