前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构理念,允许用户通过插件扩展功能。在 Web GUI 的使用场景中,开发者常需要定制视觉风格。dsh-cerrda-theme 是一个部署级静态 web 插件,它为 DSH Web GUI 提供了一套基于 cerrda 风格的暗色主题方案,解决了原生界面定制化的需求。
核心功能¶
该插件包含以下视觉与技术特性:
- 配色体系:采用 rose/purple oklch 配色体系。
- 视觉组件:包含 Liquid Glass 风格的输入栏与 hero 面板,以及 SVG 位移滤镜实现的回到底部按钮。
- 动态背景:集成 Silk WebGL2 动态背景,并包含 CardSpotlight、Ripple、ShimmerBorder 等交互效果。
- 字体与样式:使用 Sora / Fraunces / JetBrains Mono 字体,以及 CSS 液态玻璃效果(应用于侧边栏、详情列、会话头部、工具卡片等)。
安装与启用¶
安装该插件需要 pnpm 已在系统 PATH 上。安装后,需重启 DSH 进程才能使配置生效。
安装命令:
dsh plugin --profile web add dsh-cerrda-theme
验证安装:
dsh --profile web --dump-config | grep dsh-cerrda-theme
在浏览器开发者工具的网络面板中,应能观察到 /plugins/dsh-cerrda-theme/client.js 的请求。
卸载:
dsh plugin --profile web remove dsh-cerrda-theme
重启进程后,界面将恢复默认外观。
本地开发¶
如果需要在本地修改主题源码,需遵循以下工作流:
- 修改源码:所有样式与逻辑的改动位于
src/目录下的cerrda-theme-client.js。 - 构建:在仓库根目录执行构建命令。该命令会先运行
scripts/vendor-number-flow.mjs将 vendor 资源内联,再运行scripts/build.mjs生成lib/client.js。 - 生效:
- 若仅修改 CSS/JS 内容,可在 DSH 启动后硬刷新浏览器页面(Ctrl+Shift+R)。
- 若修改了
package.json或cordis.patch.yml,必须重启 DSH 进程。
本地未发布版本(仓库根目录即为包)的安装命令:
dsh plugin --profile web add .
工作原理¶
该插件作为一个 bundle 包,与 @deepseek-ai/dsh-base 等底层包机制一致:
- Bundle Patch:
dsh.bundle.patch指向./cordis.patch.yml,安装后会将本包追加进dsh.profile.bundles层栈,在启动时参与组合。 - Client 注入:
dsh.client声明浏览器 half,dsh-client-modules会将其收录进window.__DSH_BOOT__,并在服务/plugins/dsh-cerrda-theme/client.js。 - 宿主与导出:
main字段指向空宿主 half,exports["./client"]导出浏览器 bundle,通过window.__ModuleLoader__.load注册,并手动注入 CSS 样式。
注意事项¶
- 进程重启:Web profile 的热更新(HMR)已禁用,bundle 层变更仅在进程启动时应用,因此安装或修改配置后必须重启 DSH。
- 依赖要求:确保
pnpm已正确安装并在系统路径中。 - 源码审查:安装任何社区插件前,建议检查源码与许可证(本项目为 MIT 协议)。
生态位置¶
该插件由用户 Cerrda 维护,可在社区目录 dsh-cerrda-theme 查看,源码位于 GitHub。