Introduction

In DSH (DeepSeek Harness) web conversations, /goal can drive a preset prompt to run automatically; if you want this prompt to start at a specific time instead of typing it in manually every time, you need a scheduled trigger.

dsh-timed-goal provides such a plugin: configure an absolute time in any DSH conversation, and it automatically creates and executes the goal when the time arrives. It also provides a slash command and a browser management panel.

Here is the background: DSH’s philosophy is “everything is a plugin”; the plugin directory mentioned in this article is a community directory and has no official affiliation with DeepSeek / Fufan.

What is it

gfds2005/dsh-timed-goal is a plugin for DSH Web used to configure timed tasks in any conversation, and automatically executes your preset prompt via /goal when the time comes.

  • Maintainer: gfds2005
  • License: MIT
  • Main Entry Points: Slash command /timed-goal and the management panel in the browser

Core Features

Configure timed tasks per conversation

  • Configure tasks per conversation, rather than global tasks.
  • Fill in absolute time: Year / Month / Day / Hour / Minute / Second.
  • Support server local time or UTC.
  • The interface does not poll: it fetches once when opened and after each change; you can also manually refresh the list via the refresh button.

Automatic execution at the scheduled time

At the appointed time, the session is fixed to the permissions of the task configuration, defaulting to full access (danger-full-access), and creates a goal, which is driven by the platform goal round to automatically run the prompt.

If you want more restrained permissions, you can select workspace write for a single task: only writable to the workspace, requiring approval for out-of-scope actions.

Daily repetition and round limits

  • Daily repetition: Optional per task; after triggering or a conflict, it automatically rolls over to the same time the next day to execute again.
  • Round limit: Optional limit on the number of autonomous rounds for the triggered goal; use --rounds <n> in the command, and there is a corresponding field in the interface. Defaults to follow the host, usually 256.

Task management

  • Any task can be edited.
  • Editing a triggered or failed task returns it to “pending trigger”.
  • Both adding and editing validate that only future times can be entered.
  • The Settings page provides a read-only overview of “Timed Tasks”: view all scheduled tasks across all sessions, with options to jump to or delete tasks.
  • The interface is bilingual: Simplified Chinese / English, following DSH language settings.

Installation and Enablement

Environment Requirements

  • DSH is installed and using the web profile (dsh web).
  • Node.js 18+.

Installation

First, install the plugin:

dsh plugin --profile web add dsh-timed-goal

Then restart the dsh web process to make the plugin available in the current DSH Web session.

Verify the configuration after installation:

dsh --profile web --dump-config | grep timed-goal

If you need to install from a local source directory, for example during development and debugging:

dsh plugin --profile web add file:/absolute/path/dsh-timed-goal

Uninstallation

dsh plugin --profile web remove dsh-timed-goal

You need to restart dsh web after uninstallation.

Backup before Reinstallation

Configured tasks are saved in:

$DSH_HOME/plugins/dsh-timed-goal/jobs.json

The default path is:

~/.dsh/plugins/dsh-timed-goal/jobs.json

If you plan to reinstall, please back up this file first.

Typical Usage

Slash Command

Send the following command inside any conversation. The time below is just an example; actual use must fill in a future time.

/timed-goal add 2026-09-01 09:30:00 --rounds 32 Send current time to my email
/timed-goal 2026-09-01 09:30 --daily Remind me to drink water every morning
/timed-goal list
/timed-goal remove tg-xxxxxxxx
/timed-goal clear

Notes:

  • add can be omitted; /timed-goal <time> <prompt...> works directly.
  • --daily means the task repeats execution at this time every day.
  • --rounds <n> is used to limit the number of autonomous rounds for the triggered goal.
  • remove takes a task ID, e.g., tg-xxxxxxxx.

Web Interface

  1. Open a conversation, click the “Timed” control in the input box toolbar.
  2. Configure the task in the centered modal: select date and time, toggle UTC, check daily repetition, optionally fill in max rounds, fill in the prompt, then add.
  3. Check the status in the task list; you can edit tasks, delete tasks, or manually refresh the list.
  4. Go to the “Timed Tasks” area in the Settings page to view a cross-session task overview; you can jump to or delete tasks.

Use Cases and Notes

  • Suitable for users who need to execute preset prompts in DSH Web conversations at scheduled times, especially for configuring one-time tasks or daily repeating tasks.
  • The plugin runs as the current dsh process; timed tasks default to using full access (danger-full-access).
  • If you need more restrained permissions, you can select workspace write for a single task.
  • Tasks arranged in old versions have no permission field; after upgrading, they still trigger as full access as is. Please only arrange prompts you trust.
  • Time must be in the future; past times will be rejected.
  • Since timed tasks run automatically in the DSH instance, check the source code and license before installing.
  • Before uninstalling or reinstalling, first confirm if jobs.json needs backing up.

Links

  • Plugin Directory: https://www.skillhub.cn/plugins/gfds2005/dsh-timed-goal
  • GitHub: https://github.com/gfds2005/dsh-timed-goal