Scheduled DeepSeek Harness Agent tasks with mandatory end-to-end tests, run history, and bidirectional delivery through nine messaging channels.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:upJiang/dsh-cron-job
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
dsh-cron-job adds scheduled tasks and messaging to DeepSeek Harness. Ask the model to create a task, then send its results to WeChat, Feishu, DingTalk, WeCom, QQ, Slack, Telegram, Discord, or WhatsApp.
Requirements
- DeepSeek Harness is installed.
- Node.js 22.19 or later is installed.
- At least one DSH model is available.
- A bot or account is available for each messaging platform you want to use.
Install
The installer uses the web profile by default. It replaces an installed legacy dsh-im communication plugin while keeping its channel configuration and credential references.
On macOS or Linux:
npx -y github:upJiang/dsh-cron-job install
On Windows PowerShell:
npx -y github:upJiang/dsh-cron-job install
After installation, stop the running DSH process and start it again:
dsh web --host 127.0.0.1 --port 3080
Refresh the browser and open http://127.0.0.1:3080/.
Connect messaging accounts
- Open Communications in DSH settings.
- Choose WeChat, Feishu, DingTalk, WeCom, QQ, Slack, Telegram, Discord, or WhatsApp.
- Scan the QR code or enter the credentials requested by the page.
- Complete the connection test, then send the bot one message in the target conversation.
Account settings are stored separately on each device. The plugin does not sync keys, tokens, sign-in sessions, or chat history between devices.
WeChat proactive delivery uses the latest private-chat reply context. After a first install or an upgrade from an older version, send the WeChat bot a new direct message before running a connection test or creating a WeChat delivery task.
Create a scheduled task
- Open Scheduled Tasks in DSH settings.
- Describe the schedule, sources, and delivery destination in plain language. You can also load the Product Hunt + GitHub Trending example, then edit or remove any part of it.
- Choose a workspace, model, and delivery targets, then generate the draft.
- Review the schedule, time zone, prompt, tool permissions, and delivery targets.
- Select Test and create.
- Wait for the real workspace, model, agent, source, and delivery tests to finish.
- When every test passes, select Confirm and enable.
Test notifications include a Scheduled task creation test label. The task cannot be created if any check or delivery target fails.
Fix a failed test
The page shows which stage failed and why:
- For a workspace failure, select an accessible folder and check its permissions.
- For a model failure, choose another provider or model, or add the required API key in its settings.
- For an agent or source failure, edit the prompt, URL, authentication settings, or tool permissions.
- For a delivery failure, reconnect the account, add the required platform credentials, choose another conversation, or remove the failed target.
Changing the schedule, time zone, workspace, prompt, model, tool permissions, or delivery targets requires another complete test.
When a website requires a proxy, the plugin first uses HTTP_PROXY, HTTPS_PROXY, and NO_PROXY. If those environment variables are not set, it reads the current user's macOS or Windows system proxy. It only reads the settings and never changes the system proxy.
Manage tasks
The Scheduled Tasks page lets you search and filter tasks, inspect the next run and run history, edit tasks, pause or resume them, run them now, cancel a running task, or delete them.
Every run uses a separate DSH Session. The same task cannot run concurrently. Runs missed while DSH is stopped are skipped.
Uninstall
Run this command on macOS, Linux, or Windows PowerShell:
dsh plugin --profile web remove dsh-cron-job
Restart DSH and refresh the browser after uninstalling.
Install from a local checkout
Run this command from the plugin source directory:
node bin/dsh-cron-job.mjs install --source .
Restart DSH after installation.
Links
More in this category
loopx-project/loopx#dsh-loopx-plugin★ 6323
LoopX, a provider-neutral, local-first state kernel and control plane for long-horizon agents: keeps Goal, Todo, gate, evidence, quota, recovery, and handoff state above DeepSeek Harness, while the plugin bootstraps the CLI and skills, admits bounded same-session continuation, and adds a loopback GoalBar for the exact bound loop.
Q00/ouroboros#integrations/dsh-plugin★ 6229
Config-only bundle that mounts Ouroboros through the DSH MCP client, exposing 36 interview, Seed, execution, evaluation, and evolution workflow tools in DSH.
chuspeeism/dashi-taskboard#deepseek-harness★ 3348
Embeds the active installed Codex Taskboard runtime in the DeepSeek Harness sidebar, using its launcher runtime descriptor instead of a fixed port.
NanmiCoder/dsh-agent-teams★ 2178
AgentTeams multi-agent teams.
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1571
Installs a dedicated AI novel-writing preset and workbench: revisioned local project assets, a compact side drawer, and native approval-gated single-file changes.
tong-io/tongflow#dsh-tongflow★ 1048
TongFlow film-crew studio for image, voice, music and video production: the agent writes per-asset TongFlow workflow files (.tongflow.json) that run through TongFlow plugins, with an embedded workflow canvas, a shot/character/take project layout and a manga-drama template; sessions starting with @tongflow open the Studio view.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.