功能说明
DSH Web 不是单个插件,而是一层聚合。它的 README 包表列出十六个 npm 包:十五个组件扩展,加上把它们拉到一起的聚合包。装上聚合包,Web GUI 就一次性获得任务看板、手机远程控制、SSH 终端、使用统计、Git 图谱、会话归档管理等能力,而不必分八九次单独安装。
所有插件都通过 Harness 自身的 profile 机制挂载,不修改 Harness 源码。仓库本身刻意做得很薄:package.json 只声明一个 dsh.bundle patch,并依赖一个已发布的包 @linxin666/dsh-web-all。因此仓库即使几乎不含插件代码也可以直接安装——插件行来自 npm 包,仓库只提供装配清单。
它实际带来什么
- 任务看板 —— 覆盖待规划、待办、进行中、已完成、失败五列,支持 cron 式定时触发与可选的会话复用。调度由 Harness Host 执行,因此关掉浏览器依然有效。
- 移动端远程控制 —— 通过二维码或链接配对,手机跑的是官方 Web GUI 本身,而不是精简版界面。配对令牌一次性且限时,一个「停止」即可吊销全部已配对设备。
- SSH 运维 —— Web 终端、SFTP 传输与端口转发,支持一键导入
~/.ssh/config,以及按别名、环境或标签跨主机批量执行。端口转发只监听回环地址。 - 使用统计 —— 30 天窗口内的 token 用量、供应商余额与套餐配额,官方 DeepSeek 用量另有鲸元台账。
- 模型能力 —— 按模型声明图片输入能力与推理档位。
- Git 图谱 —— 提交图谱,以及在
$DSH_HOME/worktrees/下、分支名为wt/<名称>的 git worktree 并行会话。 - 会话归档管理 —— 归档视图、搜索与级联删除。
- 皮肤 —— 带
skin.json清单的纯资产目录,由唯一的皮肤中心包统一加载,默认附带蓝色幻想。
同一项目里还有面向 macOS 与 Windows 的桌面客户端,以及 dsh-market.com 创意工坊。
运行要求
走 npm 路线只需要一个 dsh web 能正常启动的 Harness。从仓库安装则需要 Node.js 22 或更新版本以及 pnpm。README 的徽章标注 DSH 下限为 >=0.1.5-rc.1。桌面客户端自带运行时,不需要预装 Node、npm 或 dsh CLI。
已知限制
README 写得很直白,这部分最值得在决定安装前读完:
- Host 停止或整机睡眠期间错过的任务看板触发点会被跳过,不会补跑。
- SSH 密码与 passphrase 以明文保存在
~/.dsh/dsh-ssh.json(权限0600),断线重连可能重放非幂等命令;远程输出原样返回,不做脱敏。 - 移动端推送依赖 SSE。Cloudflare quick tunnel 与 Tailscale Serve 都不透传 SSE,插件会降级为轮询,新消息可能晚几秒到达。
- 会话归档的删除是级联的,且不可恢复。
- 桌面安装包未做代码签名,macOS 会有 Gatekeeper 警告,Windows 会有 SmartScreen 提示。
- 使用统计不回填历史:从插件首次启用时开始计数。
- 模型能力只是声明,不是探测。模型可以声称支持图片,却在真正请求时失败。
什么时候用它、什么时候不要用
想让 Web GUI 一次性变得完整,并且接受这些组件一起升级,就用聚合包。README 自己的建议是升级前先读 changelog,因为一个不兼容的打包行可能影响整个界面。
只想要某一个功能,就不要用它。每个组件都单独发布,README 也列出了任务看板、SSH、使用统计、模型能力、宠物、会话归档各自的独立安装方式。有两种情况值得单独说明:如果你要的只是右侧面板,聚合包已经内置了 Better Sidebar,再单独装一次是多余的;如果你要的是终端界面,dsh-tui 是面向同一需求的另一个项目,而不是本套件的组件。
从仓库而非 npm 安装会带来额外的摩擦,README 的排障章节有记录:pnpm 11 的 release-age 门禁可能静默解析到较旧的 @linxin666/* 版本并导致页面崩溃;安装过程会请求 cloudflared、cpu-features、ssh2 的构建权限;严格的 pnpm 布局还需要 nodeLinker: hoisted 才能解析子包。
兼容性说明
来自聚合包的行统一带 web-ui- 前缀,因此打包插件与其独立包可以共存而不产生重复挂载 id——但按 id 写入的配置必须使用带前缀的形式。从旧包 @linxin666/dsh-web-ui-all 迁移由插件管理器处理:先移除旧包再装新包,任一步失败自动回滚。
打包的皮肤与宠物各自携带上游许可,其中若干为禁止商用。有一个打包皮肤 blue-fantasy 未附第三方许可声明——README 标注为等待作者确认。
FAQ
npm 聚合包和从仓库安装,必须二选一吗?
是。两者产生相同的插件行,同时安装会因为 id 重复而挂载失败。npm 聚合包是常规路线,仓库路线面向开发调试。README 把它们描述为互斥的替代方案,而不是叠加关系。
装了聚合包之后,还能单独装其中一个组件吗?
可以。web-ui- 前缀让两者互不冲突,host 部分只注册一次。README 指出两个来源并存没有额外收益,建议只保留一个。
它会回传数据吗?
README 没有把遥测描述为插件功能。唯一的痕迹是 README 图片里的一个徽章接口地址,正文并未解释它。所以这个问题应当视为「未说明」,而不是「已确认没有」。
机器睡眠时,定时任务会怎样?
会被跳过。任务看板由 Harness Host 驱动,Host 停止或机器睡眠期间错过的触发点不会排队补跑。可选的电源保护能阻止空闲睡眠,但它默认关闭,也不拦截合盖、手动睡眠、休眠或关机。


