dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:kingOfSoySauce/dsh-skin-market
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
一个嵌入 DSH 设置页的皮肤市场,可以浏览、安装、使用、停用、更新和卸载社区皮肤。
无需安装即可浏览已收录的皮肤:
在线页面仅用于浏览皮肤。需要安装、使用、更新或卸载皮肤时,请先安装下面的皮肤市场插件。
可以直接使用命令安装:
dsh plugin --profile web add 'github:kingOfSoySauce/dsh-skin-market'
也可以复制下面的提示词给你的 DSH Agent:
请帮我把这个插件安装到 DSH 的 web profile:https://github.com/kingOfSoySauce/dsh-skin-market。安装完成后告诉我如何重启 DSH Web,并确认可以从“设置 → 皮肤市场”打开它。不要替我安装任何皮肤。
安装完成后,重启 DSH Web,打开「设置 → 皮肤市场」。
当前面向 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 latest 与 next 均为 0.1.0-rc.6。本项目使用重新安装的该版本完成了以下验证:
0.1.15:132 条目录校验、70 项自动化测试、类型检查、Host/Client 构建、站点构建和 package preflight 全部通过0.1.4 联合冒烟:8 项测试和客户端 bundle 构建通过,并可在同一 DSH Web profile 中保持 active这组结果证明上述版本组合可以启动和运行,不代表市场内所有第三方皮肤都已完成同等级别的人工兼容或安全审核。
已安装的皮肤市场不需要升级插件才能看到新收录或更新后的皮肤:
catalog.json如果你开发了 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。不要修改无关文件,也不要覆盖已有条目。
7. 在目标目录仓库根目录运行 npm run registry 和相关测试。不得安装到我的真实 DSH profile,不得读取 .env、凭据、聊天记录或工作区外的私密文件。
8. 检查 git diff,提交变更并向目标目录仓库创建 PR。PR 标题使用“feat(registry): add <皮肤名>”,正文列出仓库、子包、版本、commit、许可证、预览来源、兼容性、自动检查结果和仍需人工确认的风险。
9. 创建 PR 后返回 PR 链接;如果没有 GitHub 权限或需要登录,只准备好分支、commit 和可复制的 PR 内容,并明确告诉我下一步。
收录不等于安全认证。不要声称该皮肤已被 DSH 官方、安全团队或市场背书。
皮肤市场里的「提交皮肤」也可以根据仓库地址生成这段提示词。
市场在同步已收录仓库时会检查三项便于用户理解和安装的基础规范,并在皮肤详情页展示结果:
dsh.client Web 声明、row ID 和已构建客户端入口是否满足市场的一键安装要求检查结果用于给维护者提供改进建议,不代表安全认证。暂未满足某项规范时,页面会说明如何完善,而不会把仓库描述为“不可用”。
“兼容性待验证”和“市场能否安装”是两个独立维度:
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。
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-skin、tianyhjg-lab/dsh-font、bilbillm/deepseek-harness-angelina-themes 与 dancingmemory/dskin,每个仓库补录首页、对话历史和设置或插件配置页,产物和校验报告写入 .preview/skin-screenshots/。脚本只在本地历史模板不存在时连接监听 127.0.0.1 的临时 mock,创建一条 test 历史;mock 固定返回零 usage。后续皮肤复制该隔离模板,只点“新会话”并从左侧历史重新打开 test,不会再次发送消息。报告会断言目标截图阶段 messageSent: false、localMockRequests: 0、externalModelRequestSent: false、historyReopened: true 和 tokenSpend: 0。npm 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。
skinId,不能提交任意命令或安装地址如果皮肤冲突导致 DSH 页面无法操作,先停止当前 DSH 进程,再执行:
~/.dsh/profiles/web/node_modules/.bin/dsh-skin-market-reset --profile web
该命令会关闭皮肤市场管理的所有皮肤并恢复默认外观,但保留已经安装的皮肤包和皮肤市场。随后重新启动 DSH 即可。命令使用原子写入;任何一步失败都会恢复执行前的 profile 文件。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skin-market、themes。