The core idea of DeepSeek Harness (DSH) is “everything is a plugin.” For tasks that need to run on a schedule, execution is usually constrained by the availability of the DSH Web process. The dsh-cron-scheduler plugin solves this problem by storing task rules as Cron expressions and delegating execution to the system crontab on the user’s machine, allowing tasks to run outside the DSH process.
Core Features¶
- System-level scheduling: Tasks are executed by the system
crontab, so they do not depend on the DSH Web process being alive. As long as the machine is turned on, they can run. - Syntax support: Supports standard 5-field Cron expressions (minute hour day month weekday) as well as shortcuts such as
@rebootand@daily. - Session isolation: Each run uses a brand-new Agent + Session, and the result is automatically mounted into the workspace to which the rule belongs.
- Web management and tools: The Web interface provides rule management, deployment, and run-result viewing. The Agent tools support
automation_create/list/runs/update/run_now/delete. - Permission control: Supports either
read-only(default) orworkspace-writesandbox mode.
Installation and Enablement¶
Install it using the official plugin channel:
dsh plugin --profile web add @mappedinfo/dsh-cron-scheduler
After installation, restart DSH Web and hard-refresh the browser. A “Scheduled Tasks” entry will appear in the settings menu, and the workspace tree in the sidebar will automatically display sessions generated by runs.
Usage¶
- Manage via the settings page: In the Web interface under “Settings → Scheduled Tasks,” you can create, edit, pause, resume, run immediately, or delete rules. The list below shows run status (queued/running/successful/failed) and the resulting sessions.
- Invoke in conversation: In a conversation, tell the agent “run
every day at 9:00 a.m.” The agent will call automation_createto create the scheduled task and can also support subsequent querying, updating, and immediate execution operations.
Cron syntax examples:
* 0 9 * * 1-5: 9:00 a.m. on weekdays
* */15 * * * *: Every 15 minutes
* @reboot: Run after the system restarts
Permissions and Security¶
- Sandbox mode: Each rule can be set to
read-only(default) orworkspace-writemode, controlled through the environment variableDSH_PERMISSION_MODE. - Concurrency lock: Only one run is allowed for the same rule at a time. Overlapping triggers are marked as
skipped.
Known Limitations¶
- Result consistency: Result association is eventually consistent. While the Web process is running, it polls and mounts sessions. If Web is not started, runs still complete normally, and sessions are backfilled after Web is restarted.
- Session titles: Currently generated automatically by the system with a tag prefix. Custom titles are not yet supported.
- Model configuration: Model/preset defaults to headless. Selecting a model separately per rule is not yet supported.
Ecosystem Background¶
The DSH philosophy is “everything is a plugin.” The community directory has no official affiliation with DeepSeek or High-Flyer. The plugin introduced in this article is maintained by the community developer Mappedinfo and follows the MIT license.