dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:GMH13552/dsh-timer-scheduler
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
A DeepSeek Harness (DSH) plugin: an agent self-scheduler that wakes the agent at a future time to autonomously check on background jobs, remote tasks, or anything that needs a "come back later" look — without a human having to prompt it — plus a bottom-right reminder panel in the web UI.
schedule_reminder — schedule a one-shot reminder, relative (delay_seconds) or absolute (at: ISO 8601 / HH:MM[:SS]).list_reminders — list pending reminders.cancel_reminder — cancel a reminder by id.agent.followup() with a new turn; it acts and reports on its own, no human wake-up needed.$DSH_HOME/timer-reminders.json and re-armed on restart.--dsw-alias-* tokens, hidden when empty, never covering the send button.One package, two halves, in the standard dsh.client + dsh.bundle.patch shape. Everything is host-plane: composing this bundle into the web profile's host composition makes the model tools available to every agent regardless of preset, and the route serves the browser panel.
| File | Half | Role |
|---|---|---|
lib/index.js |
Host | The three model tools (schedule_reminder / list_reminders / cancel_reminder), auto-wake, disk persistence, and GET /api/timer-reminders |
lib/client.js |
Client | shell.overlay bottom-right panel, polling every second |
cordis.patch.yml |
bundle | Inserts the Host half into the web profile's host composition |
package.json |
— | dsh.client (browser bundle) + dsh.bundle.patch (host row) |
Preset adaptation: the anchored-standard preset keeps these tools resident for its agents via its residentTools option; every other preset works without any configuration.
Not published to npm yet. Install from source:
Host-plane tools: once this bundle is composed, every agent on any preset can call
schedule_reminder/list_reminders/cancel_reminder. If a preset uses an aggressive tool-bootstrap filter (likeanchored-standard), keep the three tool names resident so its agents still see them:# inside the tool-bootstrap row's config residentTools: [schedule_reminder, list_reminders, cancel_reminder]
Place this directory in the web profile workspace and mount it as a dependency + bundle in the profile's package.json:
{
"dependencies": {
"dsh-timer-scheduler-ui": "file:./packages/dsh-timer-scheduler-ui"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-timer-scheduler-ui"
]
}
}
}
Install and restart:
cd <web-profile>
pnpm install
# restart dsh web (the Host half runs in the server process), then hard-refresh
Verify:
curl 'http://127.0.0.1:<port>/api/timer-reminders?sessionId=x' # → {"reminders":[]}
curl 'http://127.0.0.1:<port>/plugins/dsh-timer-scheduler-ui/client.js' # → 200 JS
Once published to npm: dsh plugin --profile web add dsh-timer-scheduler-ui.
In an agent session, just say:
schedule_reminder(delay_seconds=1800, note=…)schedule_reminder(at="15:00", note=…)list_reminders / cancel_reminder.The bottom-right panel shows the countdown while reminders are pending and hides when empty.
schedule_reminder; the host plugin arms a one-shot Cordis timer and writes {id, note, dueMs, sessionId} to ~/.dsh/timer-reminders.json.agents.get(sessionId), builds a source.kind = 'plugin' user message, and delivers it through agent.followup() to wake the driver./api/timer-reminders?sessionId=… every second and renders the countdown from that same file.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: scheduler、ui。