Introduction

The following introduces dsh-polling. It is a plugin for DeepSeek Harness used to convert naturally language described repetitive tasks into cron-driven polling/scheduled tasks, executing them in real sessions. The maintainer is cnyac, and the license is MIT.

Its goal is quite specific: when you need to periodically check folders, web pages, or schedule data scraping, write daily/weekly reports, organize archives, or run scripts, instead of manually initiating a conversation every time, let Harness trigger based on time and complete them in an independent session.

Core Capabilities

Create Tasks with Natural Language

You can describe tasks directly, for example:

Help me create a polling task: Check D:\稿件\待处理 every weekday at 9 AM; if there are new manuscripts, polish and archive them following the regular process.

The plugin supports creating polling tasks via natural language and provides model tools:

polling_create
polling_list
polling_edit
polling_delete
polling_trigger

Execute in Real Sessions

Tasks execute in their own sessions and do not interrupt the current conversation. The process and results are retained in the corresponding session and can be opened for viewing.

When creating a new task, you can choose Standard, PTC, Minimal, Creative, or Custom mode. You cannot switch modes while a task is executing; you must wait for the task to complete before saving.

Web UI Management

The plugin provides a Web UI that allows you to view task lists, search, execute immediately, edit, start/stop, and delete tasks.

Scheduling Behavior

  • After missing a scheduled time, the next run will catch up with the most recent missed time.
  • When the previous task is still running, a new trigger will be skipped.

Installation and Enablement

First, confirm that dsh CLI is installed on your machine and that dsh web has been run. The Node engine requirement is:

node ^22.19.0 || >=24.0.0

Then execute:

dsh plugin --profile web add github:cnyac/dsh-polling

If installing via GitHub for the first time, you will be prompted to allow building; just confirm once as prompted.

After installation, restart dsh web, and the “Polling” workspace will appear in the sidebar.

Typical Usage

Create Task

Enter directly in Harness:

Help me create a polling task: Check D:\稿件\待处理 every weekday at 9 AM; if there are new manuscripts, polish and archive them following the regular process.

Once created successfully, it will be automatically triggered at the scheduled time.

Manage Task

There are two entry points:

  1. Sidebar “Polling” workspace → Click into task session → “Polling Task” at the top of the session: Quick view status, execute immediately, and edit.
  2. Settings → Plugins → “Polling Tasks” tab: Task list and independent edit page, supports search, new, edit, execute immediately, start/stop, and delete.

Optional Configuration

The plugin supports custom data directory dir and keepPinned configuration. Configuration example in profile’s cordis.patch.yml:

- id: polling
  name: dsh-polling
  config:
    dir: 'D:\MyPolling'
    keepPinned: true

Use Cases and Precautions

Suitable for letting Harness automatically run repetitive, describable checks and execution processes, such as monitoring folders, monitoring web pages, scraping data, writing daily/weekly reports, organizing archives, sending messages, and running scripts.

Precautions before use:

  • Each trigger equals one model call; the higher the frequency, the higher the cost. Set according to actual needs.
  • Tasks are executed autonomously by the model; the plugin runs in the current dsh process environment with permissions consistent with manual conversation; it is recommended to check the source code and license before installation.
  • Task data is saved locally under $DSH_HOME; the plugin does not report to external services.

Conclusion

The value of dsh-polling lies in putting scheduled triggering, natural language task description, real session execution, and Web UI management all in one plugin.

Directory Page: DSH Community Directory (search for dsh-polling).
GitHub: https://github.com/cnyac/dsh-polling