WTStarMark/dsh-myskin 预览 preview

WTStarMark/dsh-myskin

Desktop桌面端 Native原生 ⭐ 2 MIT UI & Themes界面与主题

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。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • 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)。示例皮肤在原生外观上做了七处改动:主题色、壁纸、文字替换、字体、移除组件、 在侧边栏嵌入一张 正片叠底 混合模式的图片,以及在对话区嵌入一张装饰图。

应用效果

应用了皮肤的 DSH 主界面

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

对话中的皮肤效果

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

设置页面

设置 →「账号与余额」中的嵌入图

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

设置 →「皮肤管理」

皮肤管理页。 预设主题、启用开关、绘制模式与实时预览入口、皮肤库,以及 .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 →

← 上一个 Prev dsh-voice-call 下一个 Next dsh-fish-tts →