前言¶
DeepSeek Harness(DSH)采用“一切皆插件”的架构,插件通常按 profile 隔离。桌面版默认使用 profiles/desktop 目录,且不提供切换 profile 的设置项。这导致你在其他 profile(如 web)中安装的插件,在桌面版中无法直接使用。
dsh-profile-bridge 插件通过建立目录链接,让桌面版直接指向包含插件的 profile 目录,从而实现一键切换。
它解决什么问题¶
在 Harness 的架构中,插件系统与 profile 绑定。桌面版应用将 profile 目录硬编码为 <DSH_HOME>/profiles/desktop,并未提供切换 profile 的入口。这意味着:
- 在命令行 profile(如 web)中安装的插件,桌面版无法感知。
- 若想在桌面版使用这些插件,必须手动重新安装,造成维护负担。
该插件通过将 profiles/desktop 改为指向目标 profile 的符号链接或目录连接,解决了这一隔离问题。
安装¶
使用官方安装命令即可:
dsh plugin --profile desktop add github:2NF/dsh-profile-bridge
安装完成后,刷新页面(或重启应用)进入设置页。
如果遇到包管理器版本冲突(例如桌面版使用 pnpm v11 而目标 profile 使用 v10),可以使用本地链接方式绕过:
1. 在目标 profile 目录创建链接:
- Windows: New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-profile-bridge" -Target "D:\path\to\dsh-profile-bridge"
- macOS/Linux: ln -s /path/to/dsh-profile-bridge ~/.dsh/profiles/desktop/node_modules/dsh-profile-bridge
2. 在该 profile 的 cordis.patch.yml 末尾追加:
- insert:
- id: profile-bridge
name: 'dsh-profile-bridge'
使用¶
- 打开 设置 → 配置档案,页面会列出所有 profile 并标出当前正在使用的那个。
- 选中要切换的目标 profile(例如
web),点击 使用它。 - 应用会在两秒内自动关闭,脚本完成目录切换。你需要手动重新打开桌面版,此时插件已生效。
- 想要还原,点击 还原为独立 profile。脚本会删除链接并将备份目录恢复。
工作原理¶
切换过程发生在应用关闭时,以避免进程占用目录文件。
- 备份:将当前
profiles/desktop重命名为desktop.fresh-<时间戳>。 - 链接:在 Windows 上创建目录连接(Junction),在 macOS/Linux 上创建符号链接。
- 合并设置:将桌面版的初始界面配置(
ui-chat、ui-settings等)合并到目标 profile 的配置文件中,避免重新走引导流程。
注意事项¶
- 应用关闭:切换需要关闭应用。脚本不会自动重新打开应用,请手动启动。
- 冲突运行:不要同时运行桌面版和命令行
dsh --profile <同一个 profile>,这会因文件锁冲突导致异常。 - 平台差异:macOS/Linux 使用符号链接,逻辑与 Windows 相同,但未在真机验证。
- 适用范围:此链接仅针对桌面版。命令行用户直接使用对应的 profile 即可。
- 插件依赖:若目标 profile 中未安装此插件,切换后设置页会消失。建议两边都安装。