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

五条悟 · 无量空处:DSH 主题示例包

一、先搞清楚:插件到底装在哪

很多人以为插件是丢进 DSH 的应用目录,其实不是。DSH 把插件装进当前 profile,桌面版默认在:

~/.dsh/profiles/desktop/
├── package.json       # 插件依赖写在这里
├── cordis.patch.yml   # 插件怎么挂进宿主,写在这里
├── cordis.yml         # 空壳,别手改
└── pnpm-workspace.yaml

所以一个插件「装上」意味着两件事同时发生:package.json 多一条依赖,cordis.patch.yml 多一条 insert 记录。卸载就是把这两处撤掉。

安装后 profile 里的两处变化

二、准备:找到插件入口

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

插件面板结构

三、安装:一个输入框,四种来源

点「+ 添加插件」,弹出的对话框只有一个字段:包名或地址。这一个框同时接受:

来源填什么适合场景
本地目录/Users/你/Downloads/dsh-plugin-gojo-void自己解压、自己改过代码
压缩包./dsh-plugin-gojo-void-0.1.2.tgzRelease 里下载的安装包
npm 包名dsh-plugin-gojo-void已发布到 npm
git 地址https://github.com/xxx/yyy.git想跟最新提交

添加插件对话框与四种来源

以这次的五条悟主题为例,完整操作是:

  1. 下载 dsh-plugin-gojo-void-0.1.2.tgz(4.0 MB);
  2. 解压,得到一个 package/ 目录,里面是 package.json、lib/、assets/;
  3. 在「包名或地址」里填解压后目录的绝对路径,点「安装」;
  4. 等进度走完。没有网络下载步骤的包,这一步通常几秒就结束。

填路径时有两个坑:一是填成 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 里加依赖),卸载时插件管理器可能不知道它的存在,那就手动清理三处:

  1. ~/.dsh/profiles/desktop/package.json:删掉 dependencies 里那一条;
  2. ~/.dsh/profiles/desktop/cordis.patch.yml:删掉对应的 - insert: 条目;
  3. 重载应用。

漏掉第 2 步是最常见的卸载失败原因:依赖没了,但 patch 还在,应用启动时会报找不到模块,或者主题只残留一半样式。

七、几个常见问题

装了没反应? 先看有没有重载。90% 的「装了没生效」都是没重载。

启用后界面错乱/白屏? 大概率是两个主题同时在跑。停用另一个,重载。还不行就进安全模式停用刚装的那个。

卸载后还有残留样式? 重载后仍然存在的话,检查 cordis.patch.yml 是否还有 insert 条目;再清一次客户端缓存。

能装几个主题? 技术上可以装很多个,但同一时间只启用一个。装多个再轮换是正常用法,同时启用不是。

第三方主题安全吗? 主题包可以注入客户端 JS,能读到你界面上的内容。装之前至少看一眼 package.json 的 main、lib/ 里有没有网络请求,以及有没有 NOTICE.md 说明素材来源。这个五条悟包声明了「不修改宿主程序、不创建会话、不访问 API 凭据、不请求外部音视频」,但这是它自己说的,装别人的包还是要自己看一眼。

八、小结

整套流程记成三句话:

  1. 装:插件 → 添加插件 → 填路径/包名 → 安装;
  2. 用:重载 → 先停旧主题 → 启用新主题;
  3. 卸:停用可回退,卸载更彻底;手动装过的要清 package.json 和 cordis.patch.yml 两处。

示例包 dsh-plugin-gojo-void v0.1.2 的结构和体积都写在上文里了,照着走一遍,基本就能对付绝大多数 DSH 插件。下次可以聊聊主题是怎么通过 CSS 变量接管整个工作台的——107 个令牌,比想象中好改。

本文示例包来自第三方,仅供演示安装流程;版权与素材授权以包内 NOTICE 为准。
最后修改:2026 年 10 月 27 日
如果觉得我的文章对你有用,请随意赞赏