dsh-themes

August 14, 2026 · View on GitHub

DeepSeek Harness Web GUI 的外观皮肤插件包:5 套经典配色(Nord / Gruvbox / Solarized / Dracula / Tokyo Night),每套含浅色、深色两个变体,共 10 个可选主题

安装后在 设置 → 常规 分区出现「主题皮肤」选择行,点选即生效、刷新不丢失。

English: see README.en.md.

皮肤一览

皮肤浅色深色风格
Nordnord-lightnord-dark北极蓝灰,frost 冰雪蓝点缀
Gruvboxgruvbox-lightgruvbox-dark复古暖棕,赛璐璐质感
Solarizedsolarized-lightsolarized-dark低对比精确配色,双模式同色系
Draculadracula-lightdracula-dark吸血鬼暗紫 + 霓虹高亮
Tokyo Nighttokyo-lighttokyo-dark赛博靛蓝(深色为 Night,浅色为官方 Day 配色)

预览(设置页实拍):

NordGruvboxSolarizedDraculaTokyo Night
nord-darkgruvbox-darksolarized-darkdracula-darktokyo-dark
nord-lightgruvbox-lightsolarized-lightdracula-lighttokyo-light

每个变体覆盖 49 个语义 token(背景/边框/文字/按钮/状态/代码块/侧边栏/浮层等),未覆盖的 token 回落到 DSH 内置基础色系,任何配色下都保持可读。

安装

方式一:从 GitHub 安装(推荐)

dsh plugin --profile web add github:heiyouhu/dsh-themes

web profile 需要先有 Web GUI 组合(base + web-app),例如:

dsh plugin --profile my-profile add github:heiyouhu/dsh-themes

git 安装的是源码,pnpm ≥ 10 默认拒绝运行依赖的 prepare 构建脚本,第一次 add 会失败。按 pnpm 打印的提示,把包名写进 profile 的 pnpm-workspace.yaml 后重新执行:

# $DSH_HOME/profiles/<profile>/pnpm-workspace.yaml
allowBuilds:
  dsh-themes: true

⚠️ 放行即允许该包在你的机器上执行安装期代码。只放行你信任的包,并建议固定 commit:add github:heiyouhu/dsh-themes#<sha>

方式二:本地目录 / tarball(免放行)

dsh plugin --profile web add ./dsh-themes            # 已克隆的仓库目录
dsh plugin --profile web add ./dsh-themes-0.1.0.tgz  # pnpm pack 产物

方式三:npm

dsh plugin --profile web add dsh-themes

使用

  1. 启动 Web GUI:dsh --profile web
  2. 打开 设置 → 常规,找到「主题皮肤」行。
  3. 点任意皮肤的「浅色 / 深色」色块,界面立即切换。

选择规则

  • 皮肤选择与内置「浅色 / 深色 / 跟随系统」共用同一个偏好槽位:后选者生效
  • 皮肤选择会持久化在浏览器本地(localStorage,与具体浏览器绑定,不跨设备同步);重新打开界面时,只要内置偏好是「跟随系统」(默认值),皮肤就会自动恢复。
  • 点击内置的「浅色 / 深色」方块会暂停皮肤(内置偏好优先);点回「跟随系统」后皮肤恢复。

卸载

dsh plugin --profile web remove dsh-themes

若卸载前皮肤处于激活状态,主题会回落到默认(DSH 主题服务既有语义)。

兼容性

  • 目标 DSH 版本:0.1.0-rc.x(Web GUI 组合)。
  • 主题 id 全局唯一(<皮肤>-<浅深> 前缀);与其它插件注册同 id 会导致启动失败并大声报错(DSH 既有行为)。

开发

pnpm install
pnpm typecheck   # 类型检查
pnpm check       # 皮肤数据校验(角色覆盖 / id 唯一 / 颜色合法)
pnpm build       # 产出 lib/client.js(tsdown,契约与 DSH 官方 clientBundle 一致)

新增皮肤

  1. src/skins.tsSKINS 数组中追加一个 skin({ key, name, light, dark }),填写两套 PaletteSchemekey 会成为主题 id 前缀)。
  2. src/client/locales.ts 补充显示名(如有需要)。
  3. pnpm check && pnpm typecheck && pnpm build

打包发布

pnpm build
pnpm pack      # 产出 dsh-themes-<version>.tgz

License

MIT © heiyouhu。配色版权归各原配色方案作者所有(Nord / Gruvbox / Solarized / Dracula / Tokyo Night)。