WTStarMark/dsh-myskin
DSH 通用皮肤框架:可视化自定义 + 实时预览 + 「皮肤管理」,可以随心设计你的专属皮肤,并通过分发皮肤包和你的小伙伴们分享
Project Overview项目介绍
DSH-MySkin (v0.3.9) is a DSH-native skinning framework built exclusively for DeepSeek Harness, sharing one client-side plugin pipeline across DSH Web and DSH Desktop. It functions as a fully reversible overlay: every change is written to the plugin's own skin document plus a self-contained <style> block under the dsh-myskin entry inside the profile's cordis.patch.yml, so DSH source code, configuration, and processes are never touched; toggling off the "enable skin" switch or hitting "restore default" returns the UI to its pristine native state. The full skin, including images and embedded fonts, is exported as a single .dshskin archive (a zip-style container) so users can move a complete look between machines or profiles with one import, and three bundled presets — 深海, 暖阳, and 粉黛 — are recomputed against the actual background each text tier sits on, with WCAG-style contrast floors enforced by tests/preset-contrast.test.mjs.
The typical workflow begins in Settings → 皮肤管理, where users apply a preset, manage a multi-named skin library, or enter 绘制模式 to edit the real page (currently the on-screen surface is shrunk in, a top toolbar and right-side panel appear, and edits are not made on a copy — they happen live). Selection uses real DOM, with ↑/↓ traversal, Alt+↑/↓ for parent/child steps, and an "edit scope" toggle of 仅此元素 vs 整组, the latter writing to a common selector that matches every same-kind element (including future ones), differentiated by ARIA semantics such as [role="treeitem"][aria-expanded] for workspace rows; the panel shows the exact selector being written and the current hit count. Style edits cover text, box, appearance, position and scaling (transform-only, with 4px snap guides to siblings, parent, and viewport midlines, alt to disable), and element actions including hide (keeps placeholder) and remove (no placeholder, sent to a recycle bin inside 绘制模式 that supports individual and bulk restore). Fonts span site-wide stacks split into 界面 / 正文 / 代码, an embedded font uploader up to 30 MB, and a "local fonts" button that uses Local Font Access API on Chromium with a graceful fallback to candidate probing, plus an /dsh-myskin slash command that asks four questions (light/dark, accent or mood, font, image preference) before delivering token-level schemes with contrast calculations, never editing profile config directly — instead handing back a .dshskin or paste-ready checklist. Audience: users who want a personalized DSH shell without forking it.
Dependencies and limits: skin data lives in the profile-scoped cordis.patch.yml, so Web and Desktop skins do not auto-sync and must be moved via .dshskin import/export; embedded fonts are stored uncompressed (over 2 MB noticeably slows each save, and oversized data may be rejected outright), while wallpapers and embedded images are auto-compressed along the longest edge. The client half is hot-reloadable via patchReload: live, but any release touching the schema (such as adding the group anchor type) requires restarting DSH — note that restarting ends the current session. Supported versions are DSH 0.1.7-rc.2, 0.2.0-rc.1, and 0.2.0-rc.2 on Web and Desktop (Windows, macOS, Linux desktop shells); DSH below 0.1.7 lacks the Config + profile bundle shape this package needs. First-run caveats: place the package at $PROFILE/node_modules/dsh-myskin with lib/index.js and cordis.patch.yml visible, register it under dsh.profile.bundles, and if dsh-myskin (dsh-myskin): failed to import appears, run the manual node --input-type=module import check described in the FAQ to surface the swallowed real exception. License: MIT © WTStarMark, repository github.com/WTStarMark/dsh-myskin.
DSH-MySkin(v0.3.9)是一款面向 DSH(DeepSeek Harness)的通用皮肤框架,以可视化绘制模式与「皮肤管理」设置页为核心,Web 与 Desktop 共用同一套客户端插件管线。它作为可逆覆盖层运行:所有改动写在插件自有条目内的皮肤文档与 <style> 中,不修改 DSH 源码、配置或进程;关闭「启用皮肤」或点「还原默认」即可精确回到原生外观。通过将整套皮肤连同图片、字体打包成类 zip 的 .dshskin 包,用户可在不同机器或 profile 之间导入导出,方便携带。
典型流程:进入「设置 → 皮肤管理」后,可一键套用「深海 / 暖阳 / 粉黛」三套预设,或开启绘制模式,在真实页面上点选元素、改样式、挪位置、换字体、嵌入图片,并在侧栏查看 ARIA 语义化的组块编辑与 ARIA 命中数。该插件同时配套 /dsh-myskin 斜杠命令,让助手按"先问偏好、再给令牌级方案"的流程为用户生成 .dshskin 或可粘贴清单,适合追求个性化界面又不愿侵入主程序的用户。
依赖方面,皮肤文档随 profile 的 cordis.patch.yml 存储,故 Web 与 Desktop 不互通;嵌入字体上限 30 MB,超过 2 MB 会拖慢保存。客户端半区支持 patchReload: live 热更,但涉及 schema 的版本需重启 DSH。本仓库为 MIT 协议,仓库地址为 github.com/WTStarMark/dsh-myskin。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-myskin(WTStarMark/dsh-myskin)
仓库:https://github.com/WTStarMark/dsh-myskin
本站详情页:https://www.yhbd.top/plugins/wtstarmark-dsh-myskin/
本站登记:类型 client · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 2 · 最近提交 2026-10-01 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
- Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:WTStarMark/dsh-myskin
把 WTStarMark/dsh-myskin 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-myskin (v0.4.0)
DSH 通用皮肤框架:可视化自定义 + 实时预览 + 「皮肤管理」,可以随心设计你的专属皮肤,并通过分发皮肤包和你的小伙伴们分享。
Web 与 Desktop 共用同一套客户端插件管线。皮肤是一层完全可逆的覆盖层:不修改 DSH 源码、不触碰 DSH 进程; 关闭开关或点「还原默认」即回到原生外观。
适配 DSH 0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2(Web 与 Desktop)。
npm run check:types逐字段对照本机安装的 DSH 校验。
目录
这是什么
- 不侵入:所有改动写在插件自己的条目里(皮肤文档 + 一个自有
<style>),不修改 DSH 的源码、配置与进程。 - 可逆:每个字段可逐项清除,关闭「启用皮肤」或点「还原默认」即精确还原。
- 可视化:内置绘制模式,在真实页面上点选元素改样式、改文字、换字体、调位置,边改边看。
- 可搬运:整套皮肤连同图片与字体打包为
.dshskin,换机器或换 profile 一键导入。
界面预览
以下截图来自 DSH Desktop(Windows)。示例皮肤在原生外观上做了七处改动:主题色、壁纸、文字替换、字体、移除组件、
在侧边栏嵌入一张 正片叠底 混合模式的图片,以及在对话区嵌入一张装饰图。
应用效果

主界面。 侧边栏的全身立绘与对话区右侧的装饰图都是嵌入图片,问候语与输入框提示文字为文字替换, 整体配色来自预设主题的令牌,背景为壁纸。

对话界面。 输入区右侧的装饰图跟随输入区,会话内容与背景保持可读(图中对话内容已由本人打码)。
设置页面

账号与余额页。 页面上的人物图是按设置页作用域嵌入的图片,只在这一页显示(图中账号信息已打码)。

皮肤管理页。 预设主题、启用开关、绘制模式与实时预览入口、皮肤库,以及 .dshskin 的导出与导入。
绘制模式

绘制模式。 顶部为工具条(保存状态、撤销重做、嵌入图片、对齐、面板停靠),右侧为编辑面板; 图中打开的是「图片」页签,列出皮肤里的四张嵌入图(各自带锚点解析状态与选中、移除操作), 画布上同时可见侧边栏与对话区两张嵌入图的选中框与缩放手柄。
致谢
截图示例皮肤使用的侧边栏插画由 @zhangyuzhangyu233 提供,在此致谢。
- 面板可停靠左右:面板与页面内缩一起换边,被面板压住的固定定位组件重新可见、可点选。
- 遮挡自诊断:面板压住其他元素时,工具条报出被压住的对象并提供一键换边。
- 「全站」作用域:只用元素自身标识写选择器,跨界面改同一个组件,之后新建的实例同样生效。
- 「界面显示」:按界面控制组件显示或不显示,含三个常用预设与访问过的页面记忆。
- 层级与叠放诊断:z-index 字段,以及"填了没变化"的三类成因与置顶 / 置底。
- 对话排版:markdown 的字号行高走令牌、间距走规则,锚点不写构建哈希,compact 变体不受影响。
- 变体:四个维度加四个整套,点选即可换一整套观感,不需要编写 CSS。
- 图片:每张图独立面板、层级可选、不可见原因诊断、GIF 保留动画、可选边缘晕染。
- 令牌类改动实时生效:绘制模式中即时预览,无需先点应用。
逐条变更与取舍见 CHANGELOG.md。
能做什么
皮肤管理页(设置 →「皮肤管理」)
| 能力 | 说明 |
|---|---|
| 启用 / 停用 | 一键开关整套皮肤,停用即完全还原 |
| 预设主题 | 深海 / 暖阳 / 粉黛,走官方令牌通道,文字对比度经校验 |
| 实时预览 | 不写入文档即可先看效果 |
| 绘制模式 | 在真实页面上可视化编辑 |
| 皮肤库 | 保存、重命名、排序、复制、加载、删除多个命名皮肤 |
| 导出 / 导入 | 皮肤包 .dshskin |
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
Small-tailqwq/dsh-deep-whale
d-dev0101/open-sea-skin
kingOfSoySauce/dsh-liang-skin
RevolutionLA/dsh-dream-skin
Fishquito7/dsh-skill-mcp-panel
01Virex/dsh-status-rotator
ymh0000123/dsh-theme-endfield
SLin-code/dsh-custom-skin