dsh-plugin-web-notify
DeepSeek Harness Web 界面的浏览器通知:回合结束或等待你响应时弹出提醒。
vilicvane
@vilicvane
⬇ 2
★ 0
main
安装
dsh plugin --profile web add github:vilicvane/dsh-plugin-web-notify
需要可复现安装时,可在仓库后追加 #commit 固定提交。
DeepSeek Harness Web 界面的浏览器通知:回合结束或等待你响应时弹出提醒。
该插件未提供要点说明,请参考仓库 README。
deepseekdeepseek-harnessdeepseek-harness-plugindsh-plugin
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/vilicvane/dsh-plugin-web-notify |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 2 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-14 |
| 收录日期 | 2026-09-19 |
| 分类 | 通知与集成 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-plugin-web-notify
Browser notifications for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web GUI.
Shows a browser notification when:
- a conversation turn finishes while you are not watching that session;
- the agent starts waiting for you — an approval request, a plan review, or a question.
## Features
- **Click to focus and switch** — clicking the notification brings the GUI window to the front and switches to the finished/asking session.
- **Turn summaries** — when a turn completes, the notification first shows a "summarizing…" hint (only when the host summary capability is detected) and is then replaced with a one-sentence summary of what the turn accomplished, generated by a small model (host-side; configurable provider/model).
- **Stays until dismissed** — notifications use `requireInteraction` and stay on screen until you click or dismiss them (set the `REQUIRE_INTERACTION` constant in `client.js` to `false` for the OS default auto-dismiss timing).
- **Chime** — plays a short two-tone sound along with the notification (browsers allow page audio after the page has been interacted with at least once).
- **No interruptions** — no notification while the page is focused on the finished/asking session; you already see it.
- **One toast per session** — notifications for the same session replace each other instead of stacking.
- **Subagents ignored** — subagent sessions do not produce notifications.
- **Permission on first click** — the notification permission is requested automatically on the first click inside the page; grant it once and you are done.
- **Bilingual** — notification text follows the browser language (Chinese / English).
## Install
Add the plugin to your dsh profile and register it in the Loader.
### From GitHub
```sh
dsh plugin --profile web add github:vilicvane/dsh-plugin-web-notify
```
This is equivalent to running `pnpm add github:vilicvane/dsh-plugin-web-notify`
inside the profile directory.
### From npm
Once the package is published to the npm registry:
```sh
dsh plugin --profile web add dsh-plugin-web-notify
```
Then append an insert row to the profile's `cordis.patch.yml`
(`$DSH_HOME/profiles/web/cordis.patch.yml`):
```yaml
- insert:
- id: web-notify
name: dsh-plugin-web-notify
config:
provider: deepseek-official
model: deepseek-chat
```
The `config` block is optional and defaults to `deepseek-official` /
`deepseek-chat`. All settings and their defaults:
| Key | Default | Meaning |
| --- | --- | --- |
| `provider` | `deepseek-official` | LLM provider route used for summaries. |
| `model` | `deepseek-chat` | Small/fast model used for summaries. |
| `maxInputChars` | `4000` | Cap on the turn text (user request + assistant reply) sent to the model. |
| `maxOutputTokens` | `150` | Cap on the summary length. |
| `timeoutMs` | `60000` | Summary generation timeout. |
| `systemPrompt` | (built-in) | System prompt for the summarization call. |
Restart `dsh web`, refresh the page, and click anywhere once to grant the
notification permission.
## How it works
- `index.js` (host half) registers `/web-notify/summary` and
`/web-notify/capability` routes on the DSH web server. On a summary request
it reads the finished turn's user/assistant text on demand from the
in-memory session store (`ctx.sessions`), then streams a call to the
configured small model (`ctx.llm.stream`, with the `session-title` purpose
so the provider disables model thinking and the token budget goes to the
summary text) and caches the one-sentence result per session.
- `client.js` (client half) is a Cordis client plugin. It injects the
`sessions` service and watches the session-list snapshot for
`running → false` transitions and for `pendingInteraction`
(`approval` / `plan-review` / `question`) arrivals. It probes the
capability route at apply (and again after server connection resets), so
completion notifications start with a "summarizing…" hint only when the
host summary is actually available. The client polls the summary route;
the summary replaces the hint (same tag) once ready, and failures degrade
back to the plain completion text.
## Notes
- Windows may deliver Chrome notifications quietly (notification center
only, no banner, no sound). Check **Windows Settings → System →
Notifications → Google Chrome** and enable "Show notification banners" and
"Play a sound"; also make sure Focus Assist is off.
- Browsers do not expose a configurable auto-dismiss duration; the operating
system controls it. This plugin uses `requireInteraction` so notifications
stay visible until clicked or dismissed.
- The chime is subject to the browser autoplay policy: it plays only after
the page has been interacted with at least once.
- Bringing a window to the front without a user gesture is restricted by
browsers, so automatic focusing on show is best-effort; clicking the
notification always focuses the window and switches to the session.
- Summaries are generated only when a completion notification actually fires
(one small-model call per notified turn), and only the truncated turn text
is sent — tool outputs and the rest of the log are never transmitted.
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。