安装
环境要求
| 组件 | 支持版本 |
|---|---|
| Node.js | ^22.22.3 或 >=24.11.1 |
| DeepSeek Harness | @deepseek-ai/dsh@0.1.0-rc.8 |
| 操作系统 | Windows、macOS 或 Linux |
安装前检查 Node:
node --version
npm --version推荐:全局启动器
先安装受支持的官方 CLI,再安装 Harmony:
npm install -g @deepseek-ai/dsh@0.1.0-rc.8
npm install -g dsh-harmony
dsh webHarmony 通过一个小型持久 shim 保留 dsh 命令名。macOS 和 Linux 使用 dsh 可执行文件;Windows 使用原生 dsh.cmd 和 dsh.ps1。现有命令和参数保持不变:
dsh web
dsh --profile tui
dsh plugin --profile web add ./my-plugin通过任一界面确认运行时:
dsh harmony
dsh harmony statusWebUI 中打开 设置 → Harmony。
备选:先安装插件
如果你从 DSH 插件流程发现 Harmony,可以先安装 Bundle:
dsh plugin --profile web add dsh-harmony
dsh web首次启动会提供四个选项:
| 选项 | 行为 |
|---|---|
| 安装 | 安装启动器并退出,等待你再次启动 dsh |
| 安装并重启 | 安装启动器并立即重启同一 profile |
| 移除插件 | 从当前 profile 移除 dsh-harmony |
| 本次忽略 | 本次启动不启用 Harmony 运行时 |
WebUI 会在新进程就绪后刷新页面;交互式终端以编号菜单显示相同选项。
只有重启后的进程加载模块 Hook 后,harmony 服务才会发布。这样声明了 inject = ['harmony'] 的插件不会在未 Patch 的进程中启动。
Desktop 集成
Desktop 提供可配置 Host 入口后,将其指向公开的 dsh-harmony/bin:
Desktop supervisor
-> dsh-harmony/bin
-> @deepseek-ai/dsh/lib/bin.js web --host 127.0.0.1 --port 0
-> readiness URL
-> BrowserWindow如果 Harmony 与内置 DSH 位于不同 Node 依赖树,设置 DSH_HARMONY_DSH_ENTRY 为内置 @deepseek-ai/dsh/lib/bin.js 的绝对路径;否则 Harmony 从 Peer Dependency 解析官方 CLI。
Desktop 继续负责 Node 可执行文件、子进程、工作目录、退出处理和就绪协议。这条路径不使用也不修改系统全局 dsh shim。
Desktop 支持
Desktop 直接启动内置官方 CLI。在它提供上文所述的可配置 Host 入口前,全局安装的 Harmony 无法影响它。
Profile
Harmony 从选中的 profile 中发现 Provider 和目标。dsh harmony 默认使用 web;需要其它 profile 时请写明名称:
dsh harmony --profile tui
dsh harmony status --profile tui
dsh harmony inspect target-plugin --file lib/index.js --profile tui每个 profile 都会在 $DSH_HOME/profiles/<name>/harmony.json 中保存自己的 Provider order、全局 patchOrder 和已停用 Patch 键。
Settings、TUI 与 profile API 都会在文件锁内写入完整 profile,并以原子替换提交。过期的 WebUI 草稿会被拒绝并刷新;多个 Host 共用 profile 时,最后完成的写入成为当前文件,与 DSH Settings 的行为一致。
更新
npm install -g dsh-harmony@latest如果后续安装 DSH 后 dsh 命令被覆盖,正常启动对应 profile。Harmony Bootstrap 会恢复 shim,WebUI 随后显示重启横幅。选择 立即重启,即可通过 Harmony 重启同一命令。
官方 DSH 版本应保持在当前 Harmony Release 声明的 Peer Dependency 范围内。
卸载
先移除 profile Bundle,再移除全局运行时:
dsh plugin --profile web remove dsh-harmony
npm uninstall -g dsh-harmony
dsh web对所有包含该 Bundle 的 profile 重复第一条命令。Harmony 移除后,shim 会委托给已有官方 CLI,Bootstrap 条目会在后续官方启动时自行移除。目标文件无需还原。
如果先移除了全局包,启动仍包含 Bundle 的 profile 并选择 移除插件。