deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A DSH (DeepSeek Harness) browser plugin that tells you when your agent finishes work — a completion chime, and a tab-title alert while you are on another tab.
Prereqs: the dsh CLI (DeepSeek Harness).
dsh plugin --profile web add @yangzhe1991/dsh-task-notify
Then restart the Web GUI and refresh the browser tab. That's it — the package ships prebuilt artifacts, so nothing compiles on your machine and no allowlist is needed. dsh plugin auto-appends the bundle to your profile's dsh.profile.bundles.
Other install methods (usually not needed):
Method Command Builds on install Notes npm registry (recommended) dsh plugin --profile web add @yangzhe1991/dsh-task-notifyNo Prebuilt, quickest tarball dsh plugin --profile web add ./dsh-task-notify-0.1.0.tgzNo Offline-friendly git dsh plugin --profile web add github:yangzhe1991/dsh-task-notifyYes (via prepare)Requires one-time allowBuildsinpnpm-workspace.yaml
completed / failed / killed — background bash/pwsh, subagents, workflows, …).document.hidden), a finished task changes the title to 🔔 N 个任务完成 — <original title>; switching back to the tab restores it.Browsers block audio until the user has interacted with the page (autoplay policy). Click or press a key anywhere in the page once — chimes are unlocked from then on. The tab-title alert is never affected.
Q: I finished a task but heard nothing. A: You likely haven't interacted with the page yet (see above), or the task was a plain foreground tool call — those don't trigger; only agent turns and background jobs do.
Q: It beeped when I switched to another session.
A: That was a bug in early versions, fixed since — old turns in the newly opened session were mistaken for fresh completions. Update the plugin (dsh plugin --profile web update @yangzhe1991/dsh-task-notify) and refresh the page; only turns that finish while you're in the session will alert now.
Q: Which tasks exactly trigger the chime? A: (1) The agent completing a turn in your current session — every round of work, whether it answered, errored, or was aborted; (2) any background job settling in any session.
Q: Can I change the sound or turn things off? A: See Customization below.
Q: What does the plugin actually install?
A: A profile bundle: a config layer (cordis.patch.yml) plus a browser-half bundle (lib/client.js) that the DSH web app discovers automatically — no manual configuration, no UI added.
Tunables live at the top of src/client/index.tsx; edit and re-run npm run build (or send a PR 🙂).
| Constant | Default | Meaning |
|---|---|---|
SOUND_ENABLED |
true |
Play the chime on completion |
TITLE_ENABLED |
true |
Change the tab title while hidden |
ALERT_PREFIX |
'🔔' |
Prefix of the alert title |
git clone git@github.com:yangzhe1991/dsh-task-notify.git
cd dsh-task-notify
npm install
npm run build # produces lib/index.js (node half) + lib/client.js (browser half)
npx tsc --noEmit # type-check
├── package.json # dsh.bundle (profile config layer) + dsh.client (browser half) declarations
├── cordis.patch.yml # plugin-row config layer
├── build.mjs # esbuild build: node half + browser half
├── src/
│ ├── index.ts # node half (empty apply placeholder)
│ └── client/index.tsx # browser half: turn/job listeners, chime, title alert
└── lib/ # build output (gitignored)
dsh plugin --profile web remove @yangzhe1991/dsh-task-notify
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。