dsh-skin-studio:本地、token 安全的 DSH 皮肤工作台

前言

DSH 的理念是一切皆插件,Web 界面的主题也不例外。但想亲手换一套配色,要面对 --dsw-alias-* 这一批语义 token:明暗两套颜色分别要填、正文与背景的对比度要过 WCAG AA、派生色调整时还不能动已经锁定的项。纯手工逐项核对,既慢也容易漏。

dsh-skin-studio 解决的就是这个问题:它在浏览器本地完成皮肤的生成、编辑、审计、预览、持久化与导入导出,全程不向模型上下文写入任何内容。

这是什么

dsh-skin-studio 的定位是「本地 token 安全的 DSH 主题生成器、编辑器、审计器与导出器」,由 LeemanCheung 维护,许可证为 MIT。

它兼容 DeepSeek Harness 0.1.2-rc.1(compatibility 范围为 >=0.1.2-rc.1 <0.1.3-0,仅对 web profile 生效)。

核心功能

皮肤库与 token 编辑器

入口在 Settings → Skin Studio,提供响应式皮肤库、语义 token 编辑器和明暗双预览。内置六套预设,支持锁定、撤销/重做、删除确认和手动调色。

从图片取色

可以把 PNG/JPEG/WebP 图片丢进去做调色板取样。插件限制图片不超过 10 MB、40 兆像素,解码像素降采样到 128px,再用 OKLab k-means 提取最多六种颜色。后续的自动派生会始终保留已锁定的 token。

对比度审计

对正文、次级文字、品牌按钮这三类配色执行 WCAG AA 审计,并自动修正未锁定的派生 token——包括必须加深才能达标的白色文字。

持久化与应用

通过 storageDomain 和生成的 Typert Remotes 实现持久的 Host CRUD 与当前皮肤状态。Save & Apply 在替换可逆覆盖之前,会先把当前草稿持久化。

导入导出与分享

支持严格的 .dshskin JSON 导出/导入、Stop Preview、带声明主题依赖的生成 Client 入口源码,以及本地生成的 PNG 分享卡。

安装与启用

dsh plugin --profile web add github:LeemanCheung/dsh-skin-studio

安装后需要重启现有 DSH Web 进程,并刷新其页面。

典型用法

以「从图片生成一套皮肤」为例:

  1. 进入 Settings → Skin Studio,从六套预设中选一套作为基底;
  2. 导入一张 PNG/JPEG/WebP 图片取样(不超过 10 MB、40 兆像素),得到最多六个 OKLab k-means 候选色;
  3. 在编辑器和明暗预览里手动调整,把必须保留的颜色锁定,之后的自动派生不会触碰锁定项;
  4. 跑一次 WCAG AA 审计,插件会修正未锁定的派生 token,包括需要加深的白色文字;
  5. 确认后点 Save & Apply,插件先持久化当前草稿,再替换可逆覆盖;
  6. 导出 .dshskin JSON 用于备份或迁移,也可以生成一张本地 PNG 分享卡。

本地开发验证

如果你要自己构建或改代码,在仓库根目录依次运行:

corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
corepack pnpm pack:check

适用场景与注意

适合想自定义 DSH Web 界面配色、又不想手工维护语义 token 的用户:预设和图片取样负责起稿,审计负责可读性,持久化和导出负责沉淀与复用。

使用前有几点边界需要清楚:

  • 插件不添加任何模型 prompt、tools、messages、token 用量或 KV-cache 内容。调色分析与主题预览在浏览器运行,验证过的皮肤持久化在 Host。
  • dshskin/v1 格式限制:文件最大 100 KB、最多 128 个语义 token、严格元数据、六位十六进制颜色、指向现有 token 的唯一锁定,且必须包含当前 DSH 核心的背景/标签/品牌/边框 token。
  • 导入解析为纯 JSON:拒绝覆盖同 id 的现有皮肤,并拒绝未知字段、prototype 键、深层或超大值、非法 token 名、脚本、CSS 选择器、URL、import、表达式与外部字体;导入数据永不执行。
  • 图像取样只降采样到 128px 且仅用单帧,不保留动画与图像元数据。
  • 生成的插件源码只是供用户显式导出的文本,Skin Studio 从不安装或执行它。
  • Typert Remote 方法仅面向挂载在同一受信 DSH Web composition 中的客户端,不是面向不受信浏览器插件的授权层;Remote CRUD 与同一 composition 中的受信客户端共享,而非按单个浏览器包身份隔离。

最后照例提醒:插件以当前 dsh 进程的权限运行,安装前建议检查仓库源码与许可证(本项目为 MIT),并确认 compatibility 范围覆盖你手上的 DSH 版本。

小结

dsh-skin-studio 把 DSH Web 换肤的取样、派生、审计、持久化和导出串成一条完整的本地流程,且不触碰模型上下文。仓库地址:https://github.com/LeemanCheung/dsh-skin-studio ;收录页面:https://www.skillhub.cn/plugins/LeemanCheung/dsh-skin-studio 。目录为社区维护的独立站点,与 DeepSeek、幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye