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-goaland 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:
addcan be omitted;/timed-goal <time> <prompt...>works directly.--dailymeans the task repeats execution at this time every day.--rounds <n>is used to limit the number of autonomous rounds for the triggered goal.removetakes a task ID, e.g.,tg-xxxxxxxx.
Web Interface¶
- Open a conversation, click the “Timed” control in the input box toolbar.
- 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.
- Check the status in the task list; you can edit tasks, delete tasks, or manually refresh the list.
- 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 writefor a single task. - Tasks arranged in old versions have no permission field; after upgrading, they still trigger as
full accessas 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.jsonneeds backing up.
Links¶
- Plugin Directory: https://www.skillhub.cn/plugins/gfds2005/dsh-timed-goal
- GitHub: https://github.com/gfds2005/dsh-timed-goal