前言¶
DSH Web 默认界面偏工具向。想换主题或皮肤时,常见做法是手动找 GitHub 仓库、核对 dsh.client 声明和 row ID,再用 dsh plugin add 安装;多个皮肤插件并存还容易冲突。dsh-skin-market 把浏览、安装、启用、停用、更新和卸载收进 DSH 设置页,并配套在线目录页,目录由社区 PR 维护、固定 commit 安装目标。下面介绍它的定位、能力与安装用法。
这是什么¶
dsh-skin-market 是嵌入 DSH 设置页的皮肤市场,维护者为 kingOfSoySauce。项目在 GitHub 上约 82 stars、7 forks,SkillHub 分类为「趣味换装」。
市场已收录百余款 DSH Web 皮肤;目录经 schema 校验,并有人工审核与社区收录入口。除插件内的「设置 → 皮肤市场」外,还有独立在线页 kingofsoysauce.github.io/dsh-skin-market 供浏览预览。npm 包名 dsh-skin-market,当前仓库版本 0.1.45,许可证 MIT。
核心功能¶
皮肤生命周期¶
在 DSH Web profile 内,市场调用 DSH 的 profile 插件管理器完成:
- 浏览目录中的社区皮肤(预览图、说明、兼容性提示)
- 一键安装、启用、停用、更新与卸载
- 对仅含
dsh.client的纯前端皮肤,安装后幂等写入已审核的 rowId 与 package 注册;卸载时一并移除
同时支持带 dsh.bundle 的完整插件和只有 dsh.client 的皮肤包。
在线目录与缓存¶
已安装的市场插件不必升级即可看到新收录皮肤:
- 打开市场时,Host 从 GitHub Pages 拉取最新
catalog.json - 页面打开后每 5 分钟静默检查;窗口重新获得焦点时立即检查
- 浏览器用 IndexedDB 缓存最近一次有效目录;无缓存时先展示缓存或内置目录,再在后台校验远程数据
- 列表首批渲染 20 条,接近底部时每次追加 20 条;搜索与排序覆盖完整目录
远程目录通过 schema、唯一 ID、package、rowId、仓库地址和固定 commit 安装目标校验后,才进入可安装流程。校验失败时回退到缓存或插件内置目录。
收录与审核¶
社区皮肤的唯一事实来源是仓库 registry/skins/ 下每个皮肤一条 YAML;data/catalog.json 由 CI 生成,PR 中无需手改。提交皮肤可通过市场内「提交皮肤」或 README 中的 Agent 提示词,按 registry/skin.schema.json 新建条目并开 PR。
收录要求包括:公开可安装的 DSH Web 皮肤仓库、安装目标固定到完整 40 位 commit SHA、明确的 package、row ID、许可证与兼容范围、仓库内真实界面截图。市场还会展示 README 截图、DSH 版本声明、一键安装元数据等「仓库健康」检查结果,用于改进建议,不代表官方安全认证。
插件自身更新¶
npm 上出现更高版本时,「设置 → 皮肤市场」标题右侧会出现更新入口;也可执行与安装相同的 dsh plugin add 命令更新。更新后需重启 DSH Web。
安装与启用¶
安装前请关闭其他皮肤/主题插件,避免与 @deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app 以外的外观类 bundle 冲突。
官方命令安装到 web profile:
dsh plugin --profile web add "dsh-skin-market@latest"
安装完成后重启 DSH Web,从「设置 → 皮肤市场」进入。安装依赖 profile 内的 pnpm;若出现 pnpm is not recognized、package manifest missing 或 allowBuilds 相关报错,可按 README「安装失败时,可以让 DSH 自己排查」一节,把完整报错交给 DSH Agent 按步骤检查 pnpm、workspace 与构建审批项。
README 还提供安装前冲突检查的 Agent 提示词:先只读检查 web profile 的 package.json、cordis.patch.yml 与已启用 bundles,发现其他皮肤插件时暂停并提示停用,无冲突后再执行上述命令。
典型用法¶
从市场安装一款皮肤¶
- 打开 DSH Web「设置 → 皮肤市场」,或先访问 在线皮肤市场 预览。
- 在列表中搜索或排序,点进详情查看预览图、兼容性与仓库健康提示。
- 点击安装;市场会调用
plugin add,安装目标为目录中固定的 commit SHA。 - 在市场中启用皮肤;若需换回默认或其他皮肤,在同一界面停用或切换。
- 皮肤有更新时,在详情或列表中执行更新;卸载则从 profile 移除该皮肤依赖与注册项。
提交自研皮肤到市场¶
准备公开 GitHub 仓库后,将 README 中的收录提示词交给 DSH Agent,把 <你的皮肤仓库地址> 换成真实地址。Agent 应只读检查皮肤包、解析 40 位 commit SHA、按 schema 在 registry/skins/ 新增 YAML、运行 npm run registry:check 与测试,并向 kingOfSoySauce/dsh-skin-market 提 PR。收录不等于 DSH 官方或安全团队背书。
本地开发皮肤时固定内置目录¶
本地往 registry/skins 写入条目后,默认仍会请求 GitHub Pages 上的远程目录。调试时可在启动 DSH Web 前设置:
DSH_SKIN_MARKET_LOCAL_CATALOG=1 dsh web
市场将使用当前构建包内的 data/catalog.json,不发起远程请求;安装与生命周期逻辑仍走完整流程。验证完成后去掉该变量,确认线上目录行为未受影响。
适用场景与注意¶
适合谁
- 想在 DSH Web 里快速试用社区主题、不想手拼
github:owner/repo#commit安装串的开发者 - 维护 DSH 皮肤仓库、希望通过标准 registry PR 进入市场目录的作者
- 需要在同一 profile 内管理多款皮肤的用户(注意同时只启用一款外观类插件)
兼容性
README 写明当前面向 DSH Web 0.1.0-rc.6。截至 2026-08-17,维护者用该版本验证了市场 0.1.15 与示例皮肤联合冒烟;目录中各第三方皮肤的兼容与安全需自行判断。缺少 DSH 版本声明时页面会提示风险,但不单独阻止市场安装。
安全与权限
插件以当前 DSH 进程权限运行,安装、更新会修改 web profile 的依赖与 bundle。安装前应阅读目标皮肤仓库源码与许可证;市场展示 stars、topic 等仅用于发现与排序,不表示已审核安全。收录与「仓库健康」检查也不替代你自己的安全判断。
其他注意
- Windows 上含
&的github:…#commit&path:/…安装串不要直接交给 cmd.exe 下的dsh plugin add;优先用市场一键安装,或按 README 用 PowerShellpnpm add到 profile 目录。 - 皮肤市场属于社区生态,SkillHub 目录与 DeepSeek / 幻方无官方从属关系,不是官方应用商店。
链接¶
- SkillHub 目录页:kingOfSoySauce/dsh-skin-market
- GitHub 仓库:github.com/kingOfSoySauce/dsh-skin-market
- 在线皮肤市场:kingofsoysauce.github.io/dsh-skin-market