昨天在站里发了 EVA 主题的介绍,有读者问「插件到底怎么装、装完不想要了怎么卸」。这篇就把 DSH(DeepSeek Harness)插件和主题的完整流程走一遍,示例用刚拿到的一个五条悟主题包,从下载到卸载全部实操。

一、先搞清楚:插件到底装在哪
很多人以为插件是丢进 DSH 的应用目录,其实不是。DSH 把插件装进当前 profile,桌面版默认在:
~/.dsh/profiles/desktop/
├── package.json # 插件依赖写在这里
├── cordis.patch.yml # 插件怎么挂进宿主,写在这里
├── cordis.yml # 空壳,别手改
└── pnpm-workspace.yaml所以一个插件「装上」意味着两件事同时发生:package.json 多一条依赖,cordis.patch.yml 多一条 insert 记录。卸载就是把这两处撤掉。

二、准备:找到插件入口
打开 DSH,左侧导航栏点「插件」,右侧面板右上角就是「+ 添加插件」。面板里能看到已装插件的版本号和启用状态——主题类插件同一时间只建议启用一个,两个主题同时开着会互相覆盖 CSS 变量,轻则配色错乱,重则白屏。

三、安装:一个输入框,四种来源
点「+ 添加插件」,弹出的对话框只有一个字段:包名或地址。这一个框同时接受:
| 来源 | 填什么 | 适合场景 |
|---|---|---|
| 本地目录 | /Users/你/Downloads/dsh-plugin-gojo-void | 自己解压、自己改过代码 |
| 压缩包 | ./dsh-plugin-gojo-void-0.1.2.tgz | Release 里下载的安装包 |
| npm 包名 | dsh-plugin-gojo-void | 已发布到 npm |
| git 地址 | https://github.com/xxx/yyy.git | 想跟最新提交 |

以这次的五条悟主题为例,完整操作是:
- 下载
dsh-plugin-gojo-void-0.1.2.tgz(4.0 MB); - 解压,得到一个
package/目录,里面是package.json、lib/、assets/; - 在「包名或地址」里填解压后目录的绝对路径,点「安装」;
- 等进度走完。没有网络下载步骤的包,这一步通常几秒就结束。
填路径时有两个坑:一是填成 package/ 的上一级目录会报「找不到 package.json」;二是路径里有空格没加引号,会被截断。
四、安装之后:启用,以及主题互斥
安装完成不等于生效。面板会提示「需要重载」,按提示重载一次应用即可;部分客户端插件支持热加载,可以不重载,以界面提示为准。
重载后插件卡片上会出现「启用」。如果你原来开着别的主题(比如站里那套 EVA 主题),先把旧主题停用,再启用新主题。 这一步顺序反了,通常表现为新主题只生效一半:背景换了,按钮还是旧的。

五条悟这个包启用后的表现是:进工作台时自动结印、六眼亮起、展开「無量空処」,然后落到蓝黑配色的工作台;首屏有蓝黑色遮罩接管等待期,资源加载失败或超过 8 秒会自动释放,不会把界面卡死。宿主限制自动播放声音时会静音继续,动画照常走完。右下角有重播和声音开关,开场可以跳过,也可以按 Esc。
五、怎么看一个包是否正常
装之前建议先看一眼包里的东西,这一步能过滤掉很多来路不明的包:

一个正常的 DSH 主题包至少有:
package.json里的dsh字段,声明bundle.patch(装载补丁)和client.platform(客户端平台);- 一个入口文件(这里是
lib/index.js); cordis.patch.yml,内容是往宿主里插一条记录;assets/,主题资源(CSS、图片、音频)。
这个包一共 16 个文件、107 个主题令牌、深浅色都覆盖,还带两段音频和两张透明人物图——所以体积到了 4 MB。纯 CSS 主题通常只有几十 KB。
六、卸载:先停用,再卸载
卸载分两种,别搞混:
- 停用(禁用):文件还在,只是不加载。适合「先试试别的主题,过几天再换回来」。停用后会回到原有主题,原来的显示偏好也保留。
- 卸载:从 profile 里移除依赖,下次重载就不再加载。适合确定不要了。
在插件卡片上点「卸载」,确认后重载一次即可。如果因为某些原因走了手动安装(比如直接往 package.json 里加依赖),卸载时插件管理器可能不知道它的存在,那就手动清理三处:
~/.dsh/profiles/desktop/package.json:删掉dependencies里那一条;~/.dsh/profiles/desktop/cordis.patch.yml:删掉对应的- insert:条目;- 重载应用。
漏掉第 2 步是最常见的卸载失败原因:依赖没了,但 patch 还在,应用启动时会报找不到模块,或者主题只残留一半样式。
七、几个常见问题
装了没反应? 先看有没有重载。90% 的「装了没生效」都是没重载。
启用后界面错乱/白屏? 大概率是两个主题同时在跑。停用另一个,重载。还不行就进安全模式停用刚装的那个。
卸载后还有残留样式? 重载后仍然存在的话,检查 cordis.patch.yml 是否还有 insert 条目;再清一次客户端缓存。
能装几个主题? 技术上可以装很多个,但同一时间只启用一个。装多个再轮换是正常用法,同时启用不是。
第三方主题安全吗? 主题包可以注入客户端 JS,能读到你界面上的内容。装之前至少看一眼 package.json 的 main、lib/ 里有没有网络请求,以及有没有 NOTICE.md 说明素材来源。这个五条悟包声明了「不修改宿主程序、不创建会话、不访问 API 凭据、不请求外部音视频」,但这是它自己说的,装别人的包还是要自己看一眼。
八、小结
整套流程记成三句话:
- 装:插件 → 添加插件 → 填路径/包名 → 安装;
- 用:重载 → 先停旧主题 → 启用新主题;
- 卸:停用可回退,卸载更彻底;手动装过的要清
package.json和cordis.patch.yml两处。
示例包 dsh-plugin-gojo-void v0.1.2 的结构和体积都写在上文里了,照着走一遍,基本就能对付绝大多数 DSH 插件。下次可以聊聊主题是怎么通过 CSS 变量接管整个工作台的——107 个令牌,比想象中好改。
本文示例包来自第三方,仅供演示安装流程;版权与素材授权以包内 NOTICE 为准。