DeepSeek Harness plugin

dsh-skin-market

Native skin marketplace and lifecycle manager that discovers community skins, displays previews and compatibility status, and provides verified one-click or manual installation paths.

Jump to install

Source facts

Repository
kingOfSoySauce/dsh-skin-market
Latest update
Aug 18, 2026
Category
Plugin Markets & Managers
GitHub stars
27

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/kingOfSoySauce/dsh-skin-market
GitHub: https://github.com/kingOfSoySauce/dsh-skin-market
Plugin: dsh-skin-market
Author: kingOfSoySauce
Install command: dsh plugin --profile web add github:kingOfSoySauce/dsh-skin-market

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

DSH 皮肤市场

一个嵌入 DSH 设置页的皮肤市场,可以浏览、安装、使用、停用、更新和卸载社区皮肤。 <p align="center"> <img src="./docs/assets/skin-market-liang.png" alt="DSH 设置中的皮肤市场发现页" width="70%"> </p>

<p align="center"> <img src="./docs/assets/skin-market-deep-whale.png" alt="DSH 皮肤市场中的 Deep Whale 皮肤详情弹窗" width="70%"> </p>

在线预览

点击查看在线皮肤市场

近期收录

查看[近期收录日志](./docs/recently-added.md)

安装皮肤市场插件

用命令安装:

dsh plugin --profile web add 'github:kingOfSoySauce/dsh-skin-market'

或者复制下面的提示词给你的 DSH:

请把 dsh-skin-market 插件安装到 DSH 的 web profile,直接执行下面的命令,不要先去读 GitHub README:

dsh plugin --profile web add 'github:kingOfSoySauce/dsh-skin-market'

这条命令会安装插件并自动把它注册进 dsh.profile.bundles。安装完成后进行验证以及冲突检测:

1. 验证安装:读取 web profile 的 package.json,确认 dependencies 和 dsh.profile.bundles 里都有 dsh-skin-market;没有则说明注册失败,报告给我。
2. 只读检查当前启用的皮肤插件:读取 web profile 的 package.json(dsh.profile.bundles 与 dependencies)、cordis.patch.yml 和 $DSH_HOME/cordis.patch.yml(如有)。bundles 中存在、且未被任何 patch 层标记 disabled: true、且不属于 @deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app 和 dsh-skin-market 自身的插件为候选;对每个候选读取其 package.json 描述和 README 判断是否皮肤插件,无法确定的列出包名和描述问我确认。
3. 若存在已启用的皮肤插件,提醒我它们可能与市场皮肤冲突,建议先在「设置 → 皮肤市场」或 profile 的 cordis.patch.yml 中停用;无论结果如何,未经我确认不得修改任何 profile 文件。
4. 未发现已启用的皮肤插件时,直接说「未检测到已启用的皮肤插件」。

安装成功后告诉我如何重启 DSH Web 使插件生效。如果上面的安装命令报错(例如 pnpm 不在 PATH、allowBuilds 构建审批、manifest 缺失),再读 https://github.com/kingOfSoySauce/dsh-skin-market 的 README「安装失败时,可以让 DSH 自己排查」一节处理,或把完整报错贴给我。

安装完成后,重启 DSH Web,打开「设置 → 皮肤市场」。

安装失败时,可以让 DSH 自己排查

皮肤市场的安装、更新和卸载会调用 DSH 的 profile 插件管理器;当前 DSH 使用 pnpm 管理 profile 依赖。如果出现 pnpm is not recognizedpackage manifest missingallowBuilds 相关报错,不必手动猜测 profile 状态,可以把下面的提示词和完整原始报错一起复制给你的 DSH Agent:

请帮我排查 DSH Web 皮肤市场的安装失败。下面是完整原始报错:

<把完整报错粘贴到这里>

请严格按以下 3 步处理,并报告每一步的结果:

1. 确认当前使用的 profile 名称和实际目录,并检查 DSH 进程自身是否能找到 pnpm(Windows 同时检查 pnpm.cmd)。如果 pnpm 不在 PATH,先说明如何安装或修复 pnpm,并停止把问题误判为 allowBuilds 配置问题。
2. 只有确认 pnpm 可用后,才检查 profile 的 pnpm-workspace.yaml。若 pnpm 输出了构建审批 key,只把报错中完整、精确的 key 合并到 allowBuilds,对应值设为 true;不要启用 dangerouslyAllowAllBuilds,也不要放宽其他包。不要读取 .env、凭据或聊天记录。
3. 重新执行原来的皮肤安装命令。完成后验证 profile package.json 依赖、node_modules 中目标包的 package.json、dsh.client/dsh.bundle 声明和 loader 注册项;如果仍失败,请指出具体失败阶段和完整错误,不要把 package manifest missing 当作根因。

当前面向 DSH Web 0.1.0-rc.6。目录中的安装目标固定到收录时的完整 commit。

皮肤市场同时支持带 dsh.bundle 的完整插件和只有 dsh.client 的纯前端皮肤。对于后者,市场会在安装后自动、幂等地写入该皮肤已审核的 rowId 和 package 注册项;卸载时一并移除。维护者不必为了进入市场而额外复制一份 cordis.patch.yml,但仍须在 package 或 README 中提供明确的 row ID 和 DSH 兼容范围。

兼容性验证

截至 2026-08-17,npm 的 DSH latestnext 均为 0.1.0-rc.6。本项目使用重新安装的该版本完成了以下验证:

  • 皮肤市场 0.1.15:132 条目录校验、70 项自动化测试、类型检查、Host/Client 构建、站点构建和 package preflight 全部通过
  • DSH Web 实机启动:市场 Host 路由、客户端设置入口、在线目录和 5 分钟静默更新正常加载
  • Liang Intensity 0.1.4 联合冒烟:8 项测试和客户端 bundle 构建通过,并可在同一 DSH Web profile 中保持 active

这组结果证明上述版本组合可以启动和运行,不代表市场内所有第三方皮肤都已完成同等级别的人工兼容或安全审核。

在线目录更新

已安装的皮肤市场不需要升级插件才能看到新收录或更新后的皮肤:

  • 打开市场时由 DSH Host 从 GitHub Pages 拉取最新 catalog.json
  • 页面保持打开时每 5 分钟静默检查一次;窗口重新获得焦点时也会立即静默检查
  • GitHub 上出现更高的市场插件版本时,标题右侧会显示下载按钮;悬停后显示“更新”,安装完成后提示重启生效
  • 浏览器会用 IndexedDB 保留最近一次有效目录;再次打开时先展示缓存,再在后台校验在线目录
  • 列表首批只渲染 20 个皮肤,接近底部时每次无感追加 20 个;搜索和排序仍覆盖完整目录
  • 首次无缓存时显示结构化骨架屏,预览图延迟加载并保留固定尺寸,避免页面跳动
  • 远程目录通过 schema、唯一 ID/package/rowId、GitHub 仓库地址和固定 commit 安装目标校验后,才会进入可安装生命周期
  • 验证成功的目录会缓存到当前 profile;离线、超时或远程数据不合法时自动回退到缓存,再回退到插件内置目录
  • 每日抓取任务在完整测试通过后直接部署在线目录,同时继续创建 registry PR 留下可审查记录

收录你的皮肤

如果你开发了 DSH 皮肤,先准备一个公开的 GitHub 仓库,再复制下面整段提示词给你的 Agent。把 <你的皮肤仓库地址> 换成真实地址即可。

这不是终端命令,而是交给 Agent 的任务说明:

请把我的 DSH 皮肤提交到 DSH 皮肤市场。

皮肤仓库:<你的皮肤仓库地址>
目标目录仓库:https://github.com/kingOfSoySauce/dsh-skin-market
目录路径:registry/skins

请自主完成以下工作:
1. 只用只读方式检查皮肤仓库;识别单包或 monorepo 子包,读取 package.json、DSH bundle/client 声明、cordis.patch.yml、README、许可证、真实预览图和 release/tag。
2. 确认它确实是可安装的 DSH Web 皮肤,不要仅凭仓库名、README 文案或 dsh-plugin topic 判定。
3. 解析准备收录版本对应的完整 40 位 commit SHA。安装目标必须固定到该 SHA,禁止使用 main、master、HEAD 或其他可变分支。
4. 不要猜测皮肤名、包名、rowId、许可证、兼容版本或素材授权。缺少关键信息时先列出缺项,不要创建虚假条目。
5. 预览图只选择仓库内真实截图,使用固定 commit 的 GitHub raw HTTPS 地址;不要使用 SVG、data URI、第三方图床或带追踪参数的 URL。
6. fork 或 clone 目标目录仓库并新建分支;按照 registry/skin.schema.json,在 registry/skins 下只新增一个独立 YAML。不要修改或提交生成的 data/catalog.json,也不要覆盖已有条目。
7. 在目标目录仓库根目录运行 npm run registry:check 和相关测试。这个检查只验证 registry,不会改写生成文件。不得安装到我的真实 DSH profile,不得读取 .env、凭据、聊天记录或工作区外的私密文件。
8. 检查 git diff --name-only,确认变更只包含 registry/skins/<条目文件>.yml;提交变更并向目标目录仓库创建 PR。PR 标题使用“feat(registry): add <皮肤名>”,正文列出仓库、子包、版本、commit、许可证、预览来源、兼容性、自动检查结果和仍需人工确认的风险。
9. 创建 PR 后返回 PR 链接;如果没有 GitHub 权限或需要登录,只准备好分支、commit 和可复制的 PR 内容,并明确告诉我下一步。

收录不等于安全认证。不要声称该皮肤已被 DSH 官方、安全团队或市场背书。

皮肤市场里的「提交皮肤」也可以根据仓库地址生成这段提示词。

registry/skins/ 是社区提交的唯一事实来源,每个皮肤一个 YAML 文件。data/catalog.json 是生成文件,不需要在社区 PR 中维护;PR 合并到 main 后会由仓库自动重生成。这样新增皮肤之间不会因为共同编辑一个目录文件而反复冲突。

收录要求

  • 必须是公开、可安装的 DSH Web 皮肤仓库或 monorepo 子包
  • 安装来源必须固定到完整 40 位 commit SHA
  • 必须提供明确的 package、row ID、许可证和兼容范围
  • 预览图必须是仓库中的真实界面截图
  • Topic、仓库名称和 Stars 只用于发现与排序,不代表安全审核或官方背书

仓库健康建议

市场在同步已收录仓库时会检查三项便于用户理解和安装的基础规范,并在皮肤详情页展示结果:

  • README 是否展示仓库内、可固定到版本的真实界面截图
  • README 或 package 元数据是否明确声明支持的 DSH Web 版本范围
  • package 名称、dsh.client Web 声明、row ID 和已构建客户端入口是否满足市场的一键安装要求

检查结果用于给维护者提供改进建议,不代表安全认证。暂未满足某项规范时,页面会说明如何完善,而不会把仓库描述为“不可用”。

“兼容性待验证”和“市场能否安装”是两个独立维度:

  • 兼容性表示维护者是否明确声明并验证了支持的 DSH Web 版本;缺少声明时会提示风险,但不会单独阻止市场安装。
  • 市场安装表示目录是否具备固定安装目标、package、dsh.client Web 声明、row ID 和可解析的已构建客户端入口。符合这些条件时,市场会调用 DSH 的 plugin add 命令完成安装;不要求插件仓库自行实现名为 add 的命令。

本地开发

需要 Node.js 22 或更高版本。

git clone https://github.com/kingOfSoySauce/dsh-skin-market.git
cd dsh-skin-market
npm install
npm run dev

npm run dev 只启动使用 Mock Host 数据的预览页面,不会修改任何 DSH profile。

本地目录调试

本地开发 DSH 皮肤时,市场默认仍会从 GitHub Pages 请求远程 catalog.json,因此刚写入本地 registry/skins 的条目可能被远程目录覆盖。启动 DSH Web 前设置下面的开发环境变量,市场会固定使用当前构建包内的 data/catalog.json,不发起远程目录请求:

DSH_SKIN_MARKET_LOCAL_CATALOG=1 dsh web

该开关只影响当前进程的目录读取;安装、激活、停用、更新和卸载仍然经过本地市场的完整生命周期。未设置时保持线上行为:优先读取远程目录,并在失败时回退到缓存和内置目录。

本地条目验证完成后,再删除该环境变量运行 DSH,确认远程目录行为没有被改变。

常用检查命令:

npm run registry
npm test
npm run typecheck
npm run build

完整的本地安装和回滚验证步骤见 [TESTING.md](./TESTING.md)。

目录维护

npm run crawl:smoke
npm run crawl:top-stars
npm run crawl:full-ingest

为没有仓库截图的皮肤生成实机截图时,先联网缓存固定 commit 的源码包,之后安装与截图阶段可离线重复运行:

npm run screenshots:prepare
npm run screenshots:capture

当前脚本覆盖 KinGao294/dsh-skintianyhjg-lab/dsh-fontbilbillm/deepseek-harness-angelina-themesdancingmemory/dskin,每个仓库补录首页、对话历史和设置或插件配置页,产物和校验报告写入 .preview/skin-screenshots/。脚本只在本地历史模板不存在时连接监听 127.0.0.1 的临时 mock,创建一条 test 历史;mock 固定返回零 usage。后续皮肤复制该隔离模板,只点“新会话”并从左侧历史重新打开 test,不会再次发送消息。报告会断言目标截图阶段 messageSent: falselocalMockRequests: 0externalModelRequestSent: falsehistoryReopened: truetokenSpend: 0npm run screenshots:trial 可在缓存缺失时自动下载后立即试跑;截图使用独立 DSH home,不修改日常 web profile。

逐张确认是插件生效后的真实 DSH 界面,再显式提升到站点:

npm run screenshots:promote -- --skin kingao294.dsh-skin --yes-reviewed

提升后的 URL 写入条目的 marketScreenshots。构建目录时,详情轮播中的市场补录图固定排在前面,仓库自己的 screenshots 去重后保持原顺序接在后面;左侧列表和推荐卡片仍优先使用仓库原始第一张图作为封面,仓库没有图片时才使用市场实机图。后续同步不会覆盖补录图。维护者可向市场仓库提交 PR 删除或替换 marketScreenshots,也可以先把图片提交到上游仓库,再由市场 PR 移除补录版本。

正式目录条目位于 registry/skins/,Schema 位于 registry/skin.schema.json。全量任务会合并 Awesome DSH 与 GitHub dsh-plugin Topic 两个发现源;只有 dsh.client、但元数据不足以由市场安全注册的皮肤仍会展示,并提供仓库安装说明。具备稳定 package、Web client 声明、row ID 和已构建入口的纯前端皮肤可由市场自动注册,不要求额外提供 dsh.bundle。仓库的 GitHub Actions 会定期同步已收录仓库并为目录变化创建 PR。

安全说明

  • 浏览器只能提交 registry 中的 skinId,不能提交任意命令或安装地址
  • 安装、更新和激活失败时会恢复 profile manifest 快照并清理半安装状态
  • GitHub Stars 由定时收录任务写入带更新时间的目录快照,页面和 Host 都不在浏览时请求 GitHub API
  • 市场不会代替开发者登录 GitHub,也不会静默创建 PR

页面异常时重置皮肤

如果皮肤冲突导致 DSH 页面无法操作,先停止当前 DSH 进程,再执行:

~/.dsh/profiles/web/node_modules/.bin/dsh-skin-market-reset --profile web

该命令会关闭皮肤市场管理的所有皮肤并恢复默认外观,但保留已经安装的皮肤包和皮肤市场。随后重新启动 DSH 即可。命令使用原子写入;任何一步失败都会恢复执行前的 profile 文件。

License

[MIT](./LICENSE)