前言¶
DeepSeek Harness(dsh)默认 Web UI 是一套现代浅色界面,打开后是会话、侧栏和输入框。对用过 2006 年 QQ 客户端的人来说,那套珊瑚蓝窗口、九宫格标题带、宋体消息列表,是另一套完全不同的视觉记忆。社区插件 dsh-qq2006 做的就是这件事:在 Web UI 里注册一个可切换的 qq2006 主题,把配色、字体和窗口铬件往那个蓝色小企鹅靠。
DeepSeek Harness 目前处于开发者预览,官方仓库写明架构是「一切皆插件」。主题、侧栏、工具都可以以外置包的形式装进某个 profile。需要说明:本文依据的插件目录是社区站点 deepseek-harness-plugin.com,它收录第三方插件,与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
下面按目录详情页、GitHub 仓库 README、package.json 以及官方 deepseek-ai/deepseek-harness 文档交叉核对:这个插件实际提供什么、两种安装路径差在哪、装完怎么切皮肤。
这是什么¶
dsh-qq2006 是一款主题与外观插件,由 LaplaceYoung 维护,npm 包名为 @dsh-external/dsh-qq2006,当前版本 0.1.0,主要语言是 TypeScript。插件代码采用 MIT 许可证。GitHub 仓库在 2026-08-17 查询时为 12 星;社区目录页当时显示 9 星,以仓库页面为准。
它要解决的问题很具体:给 DSH Web UI 增加一个名为 qq2006 的可选主题,而不是改掉默认浅色 / 深色皮肤。实现上分两层:
- 插件包本身:向主题服务注册
qq2006,把当前主题镜像到body[data-ds-skin],并附带一份全局皮肤表(复古字体、滚动条、九宫格工具类、.qq-btn三态钮)和珊瑚蓝 token。 - 源码补丁(完整效果):登录窗、主面板、聊天窗铬件、列表式消息、QQ 秀右侧栏和原版素材,改的是宿主 UI 包源码。README 写明这些效果无法通过 npm 发行版的插件机制注入。
目录页的一句话简介是:「注册 qq2006 主题、镜像 body[data-ds-skin]、全局皮肤表与完整素材」。完整素材在仓库的 assets/qq2006/ 里,但发行版安装并不会把登录窗到聊天窗的组件级外观全部带上。这一点后面单独列表说明。
核心功能¶
1、可切换、可持久化、默认皮肤零污染¶
插件在客户端调用 ctx.theme.register,主题 id 为 qq2006,colorScheme 为 light,并带上一组 --dsw-alias-* 珊瑚蓝覆盖(品牌色约为 rgb(45, 128, 208))。注册成功后,它出现在设置 → 外观一行,位置是第 4 个选项,前三个是内置的 light / dark / system。
偏好写在 localStorage 的 dsh.theme。刷新或重启后,插件会读这个键;若值为 qq2006,再调用 setTheme 把主题设回去。源码注释解释了原因:主题服务启动时只认内置三套,自定义 id 会先回落到 system,必须在本主题注册完成后再断言一次。
生效标志是 body[data-ds-skin='qq2006']。插件只在当前主题是 qq2006 时写入该属性,切走时只删除自己写过的属性,不碰别人的 data-*。全局 CSS 和组件补丁全部锚定这个祖先选择器,所以切回默认皮肤时不应留下蓝色窗口框或宋体消息样式。仓库把这称为「零污染契约」。
package.json 里 dsh.client.platform 为 web,immediately 为 true,依赖主题服务 @deepseek-ai/dsh-client-ui-theme。它是 Web UI 侧的外观插件,不是 headless / TUI profile 用的包。
2、全局皮肤表:字体、滚动条、九宫格、三态钮¶
src/styles/qq2006.css 是发行版能直接带上的那一半外观。文件头写明:每一条规则都以 body[data-ds-skin='qq2006'] 为作用域。内容包括:
- 字体:
Tahoma, 'SimSun', '宋体', 'Microsoft YaHei', sans-serif - 细滚动条,滑块用蓝色渐变
- 九宫格窗口铬件工具类:
.qq-skin-title/.qq-skin-head/.qq-skin-body(标题带、工具带、窗体分别用左右帽图 + 中间平铺) - 标题栏三态按钮:最小化、换色、关闭为 16×16;「菜单」为原版 65×24 文字钮
- 渐变按钮
.qq-btn(白到浅蓝,边框#00558e) - 在线 / 离线状态点、金色
:focus-visible焦点环 - 消息字号循环用的
--qq-msg-font-size(小 / 中 / 大)
这些类要真正铺满登录窗和聊天窗,还需要宿主组件去引用,并配上 /qq2006/img/... 静态资源。发行版只注册主题和这份表,组件是否用得上这些类,取决于你走的是哪条安装路径。
3、两条路径的能力边界¶
README 用一张表把发行版和源码路径拆开,这是选用该插件时最容易忽略的一点:
| 能力 | npm 发行版(dsh plugin add) |
源码 monorepo(fork 分支或补丁) |
|---|---|---|
| qq2006 主题 + 珊瑚蓝 token 换肤 | 有 | 有 |
| 全局皮肤表(字体 / 滚动条 / 九宫格类) | 有 | 有 |
| 登录窗 / 主面板 / 聊天窗铬件 | 无 | 有 |
| 原版列表式消息 / QQ 秀右栏 / 消息操作 | 无 | 有 |
| 素材(按钮图标 / 头像 / 提示音) | 无 | 有 |
仓库已提交预构建产物 lib/,并声明 dsh.bundle.patch 指向 cordis.patch.yml,会把插件挂成客户端行 ui-skin-qq2006。所以用目录页那条命令,能装上的是「主题注册 + 全局表」,不是完整 QQ 客户端仿制。作者写的后续计划是:等 DSH 官方提供客户端插件的静态资源与 UI 槽位后,再把组件级皮肤迁进插件包。
源码路径下,文档还列出了登录九宫格窗、主面板 10 钮、聊天窗大工具栏 12 钮 / 小工具栏 8 钮、列表式消息(自己绿色昵称、对方深蓝紫昵称、HH:MM:SS 时间、宋体正文)、QQ 秀右侧栏,以及窗口内四套换肤预设:经典蓝 / 粉红 / 薄荷绿 / 紫罗兰。这些都绑定在 fork 的 skin/qq2006 分支或 patches/qq2006-skin.patch 上,不要当成 dsh plugin add 之后立刻出现的界面。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行:
dsh plugin add github:LaplaceYoung/dsh-qq2006
官方 CLI 文档里,插件管理的完整形式是 dsh plugin --profile <profile> add <spec>,会在对应 profile 目录里转发给 pnpm。本插件的 platform 是 web,仓库 README 写的发行版命令因此带了 profile:
dsh plugin --profile web add https://github.com/LaplaceYoung/dsh-qq2006
两条命令指向同一个 GitHub 仓库。目录页以 github:LaplaceYoung/dsh-qq2006 为准;若当前 dsh 要求显式指定 profile,使用 README 这条。需要可复现安装时,目录页建议固定 commit:
dsh plugin add github:LaplaceYoung/dsh-qq2006#commit
把 commit 换成仓库里实际的提交哈希。装完后按官方插件说明重启 web profile,让新的 bundle 层参与合成:
dsh --profile web
或使用别名 dsh web。Web UI 默认地址是 http://127.0.0.1:3080。打开后进入 设置 → 外观,选择 QQ2006 皮肤。
插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
典型用法¶
只装发行版:换珊瑚蓝主题¶
适合先看 token 和全局表是否生效。步骤来自目录页与 README:
- 确认本机已能启动 Web UI(官方文档示例:
npx @deepseek-ai/dsh web)。 - 执行上一节的
dsh plugin add(或带--profile web的写法)。 - 重启 web profile,打开
http://127.0.0.1:3080。 - 设置 → 外观 → QQ2006 皮肤。
- 需要对比时,再切回 light / dark / system。按仓库契约,默认皮肤不应残留
data-ds-skin='qq2006'。
发行版启用后,README 的原话是:获得 qq2006 主题注册(全 UI 珊瑚蓝 token 换肤)+ 全局皮肤表(复古字体、滚动条、九宫格工具类、.qq-btn 三态钮)。
要完整皮肤:走源码分支或补丁¶
完整实现在 LaplaceYoung fork 的 skin/qq2006 分支。README 给出的命令是:
git clone https://github.com/LaplaceYoung/deepseek-harness.git
cd deepseek-harness
git checkout skin/qq2006
pnpm install
pnpm run build
node --import tsx/esm apps/cli/src/bin.ts web
浏览器打开 http://127.0.0.1:3080,同样在设置 → 外观里选 QQ2006 皮肤。
已经 checkout 了上游 deepseek-ai/deepseek-harness 的用户,可以把插件仓库里的补丁打上去:
git apply patches/qq2006-skin.patch
README 注明该补丁基于上游 master。打补丁前应对齐当前上游提交,冲突需要自行处理。组件级补丁规则是:皮肤段只追加在各组件自己的 .module.css 尾部,选择器必须带 body[data-ds-skin='qq2006']。
源码路径下,聊天窗口标题栏的「更换颜色」会在经典蓝 / 粉红 / 薄荷绿 / 紫罗兰之间循环,偏好键为 dsh.qq.winSkin。发送快捷键文档写的是 Alt+S,与 Enter 等效。这些交互属于宿主 UI 补丁,不是发行版插件包里的独立命令。
适用场景与注意事项¶
适合这几类使用方式:
- 已经在用 DSH Web UI,想在外观行多一个可随时关掉的复古主题。
- 能接受发行版只有珊瑚蓝 token 和全局表,完整窗口仿制愿意自己构建 fork 或打补丁。
- 在做 DSH 主题插件,需要一份「注册主题 +
data-ds-skin镜像 + 作用域 CSS」的参考实现。src/index.ts/src/client/index.ts和cordis.patch.yml都在仓库里。
不适合、或需要先读许可再决定的情况:
- 素材版权:
assets/qq2006/README.txt写明素材来自 mengkunsoft/QQ2006,提取自腾讯原版 QQ2006 安装包,版权归腾讯,仅供学习交流,请勿商用。插件代码是 MIT,素材不是。公开演示、二次分发或商用界面前应自行评估。 - 平台:
dsh.client.platform为web,不要指望装进 TUI / headless profile 后出现这套皮肤。 - 权限:插件与当前 dsh 进程同权。即使这是外观插件,安装前仍应阅读源码和
LICENSE。 - 上游迭代:官方 README 写明开发者预览阶段会有破坏性变更。组件级补丁打在宿主
.module.css上,上游改 class 名或 DOM 结构后,fork / patch 路径可能失效;发行版也依赖主题服务的register/theme/changeAPI。 - 不要把目录站当成官方商店:安装源是 GitHub 上的社区仓库,目录页只做收录和展示。
小结¶
dsh-qq2006 把 2006 年 QQ 的珊瑚蓝外观接进 DeepSeek Harness 的主题体系:注册 qq2006、镜像 body[data-ds-skin]、用作用域 CSS 保证默认皮肤不被污染。用目录页命令安装,得到的是主题和全局皮肤表;登录窗到聊天窗的完整仿制,需要 fork 的 skin/qq2006 分支或仓库里的补丁。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-qq2006/
GitHub:https://github.com/LaplaceYoung/dsh-qq2006