DeepSeek Harness Hub
← 返回列表

Moeblack/dsh-skins

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

DSH 换肤插件镜像 + 夕港harbor皮肤 | Mirror of dsh-external/dsh-skins…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/13 · 已提供中文文档

DSH 换肤插件镜像 + 夕港(harbor)皮肤 | Mirror of dsh-external/dsh-skins + harbor (夕港) dusk-harbor skin

综合分
27.8
GitHub 分
27.8
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Moeblack/dsh-skins
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

🎨 dsh-external/dsh-skins —— DSH Web 换肤插件

正经插件去 dsh-hub,整活插件去 toybox,换肤皮肤来 dsh-skins。
一个给 DeepSeek Harness (DSH) Web GUI 换肤的客户端插件仓库:每个皮肤都是官方 ThemeService 的第三方主题注册(--dsw- alias token 覆盖,零核心改动),富皮肤在此基础上叠加 AI 生图背景。装得上、换得掉、有验收标准。

版权:本仓库为独立插件项目,版权归作者(mattheliu)所有;仅包含原创插件代码与 DSH 官方 logo 素材(按官方仓库许可使用),不包含官方仓库其余源码内容。当前为私有仓库,供 dsh 内测成员在 dsh-external 组织内使用与协作;正式公开前请勿公开分发。

🏠 住户(皮肤目录)

| 皮肤 | 基底 | 类型 | 简介 | 状态 |
|---|---|---|---|---|
| nord | dark | token | Nord:极夜配色映射到 alias token 层,纯 token 零 CSS 换肤的参考实现 🧊 | ✅ 本地构建通过 |
| aurora | dark | image | 极光:深海军蓝底 + 紫青极光光晕,中央浮一只 DSH 鱼 logo 水印 🌌 | ✅ 本地构建通过 |
| paper | light | image | 纸张:暖纸渐变 + 细颗粒噪点,墨褐色 logo 水印,浅色图片皮肤范例 📜 | ✅ 本地构建通过 |
| dream | dark | image | 云梦:深靛蓝底 + 柔焦粉紫云霭 + 一轮暖月,月夜氛围的图片皮肤 🌙 | ✅ 本地构建通过 |

想入住?看 入住指南 —— 写皮肤定义 → (可选)生图接入 → pnpm verify → README 加一行。

🖼️ 皮肤预览

Nord · Aurora · Paper · Dream

每个皮肤 = 背景图 + token 调色 + focal 焦点,设置页以图库式瓦片呈现(背景图当缩略图,参考 Codex-Dream-Skin(MIT)的"一图一情绪"与试穿思路);完整画廊见 docs/gallery.md。

✨ 原理(为什么零核心改动)

DSH 官方 ui-theme 客户端插件自带主题系统:

- ThemeService.register({ id, colorScheme, tokens }) 是官方声明支持的第三方主题表面(--dsw- token 体系:static 调色板 + alias 语义层 + specific 组件层,暗色挂 body[data-ds-dark-theme]);注册的皮肤由 ThemePresenter 把 token 打成 body 内联变量,偏好持久化进 dsh.theme。
- 本插件把所有皮肤批量注册进 ThemeService,并在设置页通用(General)区块注册一行"皮肤"选择器(复用官方 settings.general.item slot,与内置"外观"行同模式)。
- 图片皮肤额外维护 body[data-ds-skin=""] 属性 + 一个插件自有的  标签(随皮肤切换替换文本、卸载时整体回收),背景图以 data URL 内联进 bundle,无需外部托管。

📦 安装

本仓库是私有仓库:先获得 dsh-external 组织读权限。仓库根已经是官方 Profile Bundle,不需要发布 npm 包;本地开发时再准备一份可用的 DSH 官方仓库快照 提供私有类型与真实冒烟环境。

omdsh market install dsh-web-skins --profile web --enable
omdsh activate --profile web
omdsh launch --profile web --

市场条目把 id 解析为 @dsh-external/dsh-web-skins 与不可变 Git spec git+https://github.com/dsh-external/dsh-skins.git#78349585a85ab94fd3ad22bfcfa9816058da2d93;OMDSH 在 candidate generation 中复用官方 dsh plugin 并默认禁用安装脚本。直接使用官方 CLI 的调试方式、验证和恢复边界见 docs/install.md。

装好后到 设置 → 通用设置 → 皮肤 就能看到四个皮肤选项,点一下即时换肤(偏好写入 dsh.theme,跟随系统时按 OS 深浅自动切换基底)。

各皮肤发布 ref(本仓库每个 commit 都是不可变身份,更新皮肤 = 换 ref):

| 插件 | 类型 | 发布 ref |
|---|---|---|
| dsh-web-skins | web-skin | 78349585a85ab94fd3ad22bfcfa9816058da2d93 |

🔨 构建链
皮肤包是完整的客户端插件包(packages/dsh-web-skins/),本地 adapter 对齐 Private DSH snapshot 20260807(commit 8abbd65a)的官方 packages/client/tsdown.client.ts(node 半 + 浏览器 bundle 双产物):

pnpm install
pnpm typecheck
pnpm build
pnpm test
pnpm verify
pnpm i18n
pnpm i18n:write
pnpm preview
pnpm run publish

- pnpm install 需要仓库旁有 fulltest-wt 快照(link: 依赖提供类型);pnpm typecheck 是 tsc --noEmit。
- pnpm build:tsdown → lib/index.js(宿主半)+ lib/client.js(浏览器 bundle)+ lib/preview-skins.js(试穿数据模块);pnpm test:vitest(皮肤定义 / store / apply 组合 / DOM 行为)。
- pnpm verify 一键全验:typecheck + build + test + 产物冒烟(bundle 在假 loader 下跑 apply)+ i18n 双语一致性门禁;pnpm i18n 单独跑该门禁。
- 双语对(README 与 docs 的中英文文档)一起改完后,用 pnpm i18n:write(即 --write --all)重录 hash。
- pnpm preview:打开本地试穿预览页(preview/index.html,需先 pnpm build 且仓库旁有 fulltest-wt 快照)。
- lib/ 是交付物,随源码一起提交(harness 的 /plugins//client.js 直接服务它);改源码后必须 pnpm build 再提交。
- 浏览器 bundle 是 closure-factory 形态(window.__ModuleLoader__.load({ id, factory })),外部依赖走 loader 冻结模块表(cordis / react / ui-slots / ui-primitives / runtime/client),CSS Modules 由 lightningcss 编译成自动注入的  标签。
- 浏览器 bundle 携带 sourcemap(lib/client.js.map,source 路径 rebase 到仓库形态 /packages/... 树、含 sourcesContent),并使用 0807 官方 ctx.slots.inject() 声明时序与 scoped CSS 标签选择器语义。

🏗️ 入住指南

新皮肤四步入住:

1. 写定义:在 packages/dsh-web-skins/src/client/skins.ts 加一个 SkinDefinition(id / colorScheme / tokens 必填,css / accent 可选),SKINS 数组登记;locales.ts 补 skins.name. 中英文案。
2. (可选)生图接入:用 AI 生图(GPT Image / DALL·E 等)产出 1200×800 背景,跑 node scripts/embed-image.mjs   得到 data URL,写进 skin-styles.ts(见 docs/skin-authoring.md,内含 DSH logo 水印模板)。
3. 构建 + 自证:pnpm verify 全绿(含产物冒烟);在真实 dsh web 里挂载一次:设置页出现新皮肤瓦片、点击即时生效、切回浅/深色无残留。
4. 登记:README 住户表加一行。

皮肤纪律

- token-only 优先:能只用 --dsw-alias- 覆盖实现的皮肤就不写 CSS;写 CSS 必须作用域在 body[data-ds-skin=""] 之下,随皮肤切换整体替换/回收。
- 生图自包含:背景图以 data URL 内联进 bundle,不留外部 URL、不依赖托管服务;图片只做背景氛围,可读性靠 token 层保证(半透明基底 + 不透明内容层)。
- 不重复造轮子:需要更多设置入口 / 皮肤预览缩略图等能力时,先看官方 slot 体系能否覆盖,别硬编码进本仓库。

🗺️ 规划中住户(候选,未开工)

| 皮肤 | 基底 | 梗点 | 状态 |
|---|---|---|---|
| 🏮 赛博竹林 neon-bamboo | dark | 霓虹绿竹林剪影 + 赛博朋克风 | 候选 |
| 🍵 墨韵 ink-wash | light | 水墨山水背景 + 宣纸质感 | 候选 |
| 🌃 港城夜色 harbor-night | dark | 城市天际线夜景长图 | 候选 |

🌐 双语一致性门禁(i18n gate)

每对双语文档(README.md + README.en.md、docs/install.md + docs/install.en.md、docs/skin-authoring.md + docs/skin-authoring.en.md)由同名 .i18n.yaml sidecar 记录:

- 两侧各自的内容 blob hash(sha1("blob \0" + LF 归一化内容)),作为“最后一次确认一致”的锚点;
- 结构签名对比:标题层级、代码块(逐字)、表格行列数、列表形状、链接目标必须两侧一致 —— 只有正文允许不同语言;语言切换链接、# 锚点与 exemptLinks(语言化的文档链接)豁免;
- pnpm verify 会跑这个门禁,pnpm i18n 单独跑;改任一侧文档必须同步更新另一侧,然后:

pnpm i18n:write

--write 要求结构签名先通过(不会给分叉的对“盖章”),只重录 hash、不改内容。翻译质量仍是评审责任,门禁只保证结构与“成对更新”。

📚 文档

- 安装手册 —— 市场事务安装 + 官方 Profile CLI + 恢复边界
- 皮肤制作 / AI 生图接入指南 —— SkinDefinition 字段、token 速查、GPT Image 提示词模板、DSH logo 水印模板
- 皮肤画廊 —— 每个皮肤的预览图与创作思路 + 本地试穿预览页

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群