dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH+:给 DeepSeek Harness web 套原生桌面窗口的多应用容器(electron,macOS/Windows)
给 DeepSeek Harness 套一个原生桌面窗口的多应用壳。它不止是"桌面版",更把多智能体协作里最容易被忽略的消息通知补齐成刚需功能。

壳与内容彻底解耦。 DSH 本体和插件在 ~/.dsh 里照常更新升级,壳内部不绑死版本号。所以 DSH 每发一次新版本,你不用跟着重新打包这个壳——它天然兼容任意版本,装完即用。
⚠️ 消息通知需要装插件(
dsh-plus-surface/pi-dsh-plus-surface),壳本身不内置通知能力。未装插件时只降级为轮询角标,不会有系统通知。装法见下文「会话状态与显示面」。
装上插件后,无论 DSH / pi-web 装在本地还是远程电脑,都能拿到消息通知。远程场景(比如装在另一台机器/服务器上,经 DSH_URL 或端口映射连过来)也一样:远端装了插件 → 走事实出口拿全保真的精确状态;远端没装插件 → 自动退化为轮询(仍有基本角标/完成气泡,但无精确中断识别与命名)。
需要在系统里开启。 系统通知默认是关闭的,用之前请先开启:左侧工具栏第一个鲸鱼图标(DSH)上右键 → 「通知设置」,并在 macOS 系统设置 → 通知 → DSH+ 里允许通知。只在壳退到后台时才推送,前台不打扰。

不只是 DSH。当你也在用 pi-web(本地或远程),装上对应插件后同样能收到"消息完成通知"。而且功能区的 + 可以添加任意 http(s) 本地服务或网页——把常用的工具都收进一个桌面窗口里。
npm install && npm start 直接跑,无需签名。+ 手动加任意应用(不写死端口)。plugins/dsh-plus-surface)。recipes/recipe.json 加一条即可出现在条目带,一键启动任意应用。cd dsh-plus
npm install
npm start # = electron .
前置:本机已安装 DSH(npm i -g @deepseek-ai/dsh)。未安装时壳会弹出版本选择面板,一键安装并自动拉起。
DSH_URL 环境变量(最高优先)lib/detect-dsh.js)dsh web --port N --no-open 并等待就绪远程场景:dsh 或 pi-web 装在另一台电脑/服务器上时,用 DSH_URL 指向它的地址即可(如 http://192.168.1.20:3080,或经端口映射/隧道暴露的地址)。远端装了插件(dsh-plus-surface / pi-dsh-plus-surface)→ 走事实出口拿全保真的精确状态(含精确结束时刻、中断识别、命名);远端没装插件 → 自动退化为轮询(仍有基本角标/完成气泡)。两种情况下消息通知都能到你这台机器上,只是精确度有差。
| 变量 | 作用 |
|---|---|
DSH_URL | 显式地址,如 http://127.0.0.1:8080(本地)或 http://192.168.1.20:3080(远程) |
DSH_SHELL_NO_SPAWN=1 | 禁止自动拉起 dsh |
DSH_SHELL_SIGNATURES | 覆盖检测特征(逗号分隔,官方改版救场) |
DSH_SHELL_NATIVE_MENU=0 | 关闭应用区原生右键菜单兜底 |
dsh 0.1.2+ 浏览器鉴权:壳在能拿到 launch token 时静默换 cookie 再加载页面;换不到则走官方 401,不替换成引导页。
消息角标/气泡的完整能力需要两个插件,分别接 DSH 侧和 pi 侧的事实:
dsh-plus-surface(已发布 npm,v0.2.4)——dsh 侧事实桥。把 DSH 进程内的会话事实(进行中/结束/被查看)写成 ~/.dsh/dsh-plus/bridge.json,并为壳提供页面内会话跳转入口。pi-dsh-plus-surface(已发布 npm,v0.1.2)——pi 侧事实插件。把每个 pi 会话的进行中/结束/命名事实写成分片文件(~/.pi/dsh-plus/facts/<sessionId>.json),壳读目录合并出角标与气泡。TUI 与 pi-web 通用(全局装一次两边都生效)。装 dsh 侧插件(npm 安装):
dsh plugin --profile web add dsh-plus-surface
# 部署到 ~/.dsh/profiles/web 后在该目录 pnpm install --force 重打包
装 pi 侧插件(pi packages,npm 源):
pi install npm:pi-dsh-plus-surface
# 或写入 ~/.pi/agent/settings.json 的 "packages": ["npm:pi-dsh-plus-surface@0.1.2"]
插件未装时自动降级为轮询 session.list。事实文件:~/.dsh/dsh-plus/bridge.json。
添加 http://127.0.0.1:<pi-web端口> 为应用;busy 灯走 HTTP 轮询 /api/sessions。完整会话气泡需装 plugins/pi-dsh-plus-surface。pi-web 装在远程电脑上也可以——在功能区 + 添加远程地址(如 http://192.168.1.20:<pi-web端口>,或经端口映射/隧道暴露的地址),远端装了 pi-dsh-plus-surface 插件后,serve-facts.mjs 会提供 HTTP 只读事实出口(默认 DSH_PLUS_FACTS_PORT 3099),壳拉取后同样能出角标、完成气泡与消息通知。pi-web 的 GitHub 仓库见 agegr/pi-web。
从 Releases 直接下载即可,无需自己打包。
macOS(仅 arm64:DSH+-0.1.8-arm64.dmg)
官方只发这一份 DMG:已用 Apple Development 签名(Hardened Runtime),通知中心可用;未公证,网上下载后 Gatekeeper 会拦一次。
DSH+-0.1.8-arm64.dmg,把 DSH+ 拖进「应用程序」。xattr -dr com.apple.quarantine /Applications/DSH+.app。装好后:系统设置 → 通知 → DSH+,再在鲸鱼菜单 → 「通知设置」 打开开关。
Windows(.exe,未签名)
DSH+ Setup 0.1.8.exe 安装。⚠️ 只有已签名的
.app才能把消息推到「通知中心」。请用上面这份 Release DMG。npm start未签名,只能显示功能区 / Dock 角标。
你自己改源码后想重新打包:
npm run dist # electron-builder --dir → dist/mac-arm64/DSH+.app 或 dist/win-unpacked/
npm run dist:signed # macOS arm64:签名、打出这一份 DMG,并安装到 /Applications/DSH+.app
自用开发直接 npm start 即可,不必打包。
dsh-plus/
├── main.js # 主进程:窗口、托盘、应用容器、显示面 Hub、通知
├── lib/
│ ├── dsh-service.js # dsh web 生命周期(解析/拉起/停止/重启)
│ ├── detect-dsh.js # 端口自动检测
│ ├── dsh-manage.js # DSH 安装/版本管理
│ ├── dsh-auth.js # 0.1.2+ launch token → cookie
│ ├── bridge.js # dsh 事实源(读 bridge.json / HTTP 降级)
│ ├── notifications.js # 系统通知中心
│ ├── surface/ # 显示面管道(model / hub / adapters / attention)
│ ├── shell-ui.html # 功能区 UI
│ └── shell-preload.js
├── plugins/
│ ├── dsh-plus-surface/ # dsh 侧:事实出口 + 动作入口
│ └── pi-dsh-plus-surface/# pi 侧:分片事实写 ~/.pi/dsh-plus/facts/
├── recipes/recipe.json # 默认显示面投影规则
├── scripts/ # mac 签名打包、Tailscale 等
└── test/ # node --test test/*.test.mjs