dsh-dream-skin:DSH Web 原生 token 换肤与主题包

前言

DeepSeek Harness(DSH)的 Web 界面默认外观够用,但长时间对着同一套配色工作时,很多人会想换一套更顺眼、更克制的界面。社区里也有换肤方案,有的走 CSS 注入,有的偏题材贴图;而 DSH 本身是一套 --dsw-* 设计令牌驱动的 Web GUI,官方插件体系也开放了 ctx.theme 等扩展点。

下面介绍 dsh-dream-skin:由 RevolutionLA 维护的 DSH 标准双面插件(dsh-plugin),通过原生 token 注册实现换肤、壁纸和主题包,不注入、不改安装包。它在 SkillHub 社区目录归类为「趣味换装」,GitHub 仓库约 90 stars、8 forks。

这是什么

dsh-dream-skin 是发布在 npm 上的换肤插件,当前版本 0.4.14,MIT 许可证。它把「换肤」做成与官方 ui-theme 同构的 npm 包:Host 半边通过 cordis.patch.yml 插入 loader 入口,浏览器半边在 lib/client.js 里注册主题、叠加壁纸层,并把设置 UI 挂到 设置 → 外观(Theme) 分节。

插件不是 DeepSeek / 幻方官方产品;SkillHub(https://www.skillhub.cn/plugins/RevolutionLA/dsh-dream-skin)是社区独立目录,与官方无从属关系。

核心功能

8 套 Mirage 预设皮肤

内置 Mirage 幻梦系列 8 套皮肤,浅色与深色兼顾,每套自带专属弥散光背景。预设 id 如下:

id 风格
abyss 沉静蓝
aurora 极光青
nebula 星云紫
ember 余烬橙
midnight 午夜黑
ivory iOS 扁平
mist 液态玻璃
rose Material 粉

在设置里一键切换即可应用;卡片、输入框、消息气泡保持内层不透明,可读性优先。

壁纸 2.0

在预设皮肤之上,可叠加自定义壁纸:

  • 本地图片(上传后自动压缩至 ≤2MB)
  • 图片 URL
  • 渐变预设

支持调节透明度与模糊;每套皮肤会建议一张渐变,聚焦任务时可自动弱化背景干扰。

每用户强调色(Accent)

通过 ctx.theme.overrideTokens 叠加层,在不改动皮肤本身的前提下叠加强调色。设置里提供 12 个典型色块、选色盘、随机与恢复主题色;这一层可随时关闭,一键还原。

主题包导入、导出与分享

一个 *.dsh-theme.json 文件包含 manifest 与全套 tokens。可导入本地文件、一键应用,或复制分享链接(编码进 URL hash)。导入时校验格式、必填 token 与颜色合法性;失败或移除时安全回退。

本地主题包库与快捷操作

导入的主题包集中在设置里管理,支持应用、收藏、移除。「换一个试试」(surprise me)会随机切换到与当前不同的主题。弹窗不透明度可通过滑块调节并持久化保存。

持久化与还原

皮肤与壁纸保存在浏览器 localStorage(键前缀 dsh-dream-skin:),刷新或重开浏览器不丢失,但只在当前浏览器生效。可随时一键回到 DSH 内置外观。

安装与启用

推荐从 npm 安装正式包,装完后需重启 DSH Web 才生效。

dsh plugin --profile web add dsh-dream-skin
dsh web

dsh plugin add 报 workspace 相关错误 ERR_PNPM_ADDING_TO_ROOT,在命令中补 -w 标志即可。

验证是否加载成功:

dsh --profile web --dump-config | grep -A2 dream-skin

输出中应出现 dream-skin loader 条目。打开 设置 → 外观(Theme),可见「皮肤」「强调色」「壁纸 / 高级壁纸」「主题包」等行。

其他安装方式(README 中有完整说明):

  • 从 GitHub 固定到指定 commit:dsh plugin --profile web add 'github:RevolutionLA/dsh-dream-skin#<40位commit>'
  • 从 Release tarball:dsh plugin --profile web add ./dsh-dream-skin-<版本>.tgz
  • 本地开发:克隆仓库后在目录内执行 dsh plugin --profile web add .

更新与卸载:

dsh plugin --profile web update dsh-dream-skin   # 更新
dsh plugin --profile web remove dsh-dream-skin   # 卸载
dsh web                                          # 重启生效

典型用法

经过上面的安装步骤后,日常操作都在 Web 设置界面完成,无需再敲命令。

快速换一套预设皮肤

  1. 打开 设置 → 外观(Theme)
  2. 在「皮肤」行挑选一套 Mirage 预设(如 mist 液态玻璃)
  3. 界面即时切换;选择会写入 localStorage

叠加强调色与壁纸

  1. 在同一分节的「强调色」行选色或点随机
  2. 在「壁纸 / 高级壁纸」行上传本地图、填 URL 或选渐变预设
  3. 调节透明度、模糊;需要专注时可开启自动弱化

导入或分享主题包

  1. 在「主题包」行导入 *.dsh-theme.json 文件
  2. 导入后可在本地主题包库中应用、收藏或移除
  3. 导出或复制分享链接,把同一套 token 配置发给他人

还原默认外观

在设置里选择回到 DSH 内置外观,或卸载插件后重启:

dsh plugin --profile web remove dsh-dream-skin && dsh web

若要自己制作主题包,仓库提供示例文件 docs/examples/sample-theme-pack.json,token 契约见 docs/themes-spec.md

适用场景与注意

适合谁

  • 日常用 DSH Web GUI 做 Agent 开发或对话,希望界面更克制、耐看
  • 需要在同一 DSH 实例上快速切换多套配色,或导入他人分享的主题包
  • 偏好原生 token 方案,不想依赖 CSS 注入或修改客户端二进制

技术与兼容性

要求
DeepSeek Harness (dsh) 0.1.0-rc.6(peerDependencies 对齐 ^0.1.0-rc.6
Node.js >=18
浏览器 现代 Chromium / WebKit(依赖 CSS 变量与 matchMedia

安全与权限

插件以当前 DSH 进程的权限运行,属于标准 dsh-plugin 双面插件,会加载 Host 与浏览器两侧代码。安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。插件只读写浏览器 localStorage,不通过 Host settings 暴露远程命名空间。

与桌面端 Codex-Dream-Skin 不同:后者通过 CDP 向渲染进程注入 CSS;本插件走 DSH 官方 ctx.theme.register / overrideTokens 路径,不因客户端二进制更新而失效,但仅适用于 Web GUI,不覆盖桌面 App。

结尾

dsh-dream-skin 把 DSH 换肤落在官方 token 生态内:8 套 Mirage 预设开箱可用,壁纸、强调色、主题包分享叠在其上,随开随关、可一键还原。若你正在给 DSH Web 找一套克制、清透的外观方案,可以从一条安装命令开始试。

  • SkillHub 目录页:https://www.skillhub.cn/plugins/RevolutionLA/dsh-dream-skin
  • GitHub 仓库:https://github.com/RevolutionLA/dsh-dream-skin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜