dsh-skin-kit
August 19, 2026 · View on GitHub
给 DeepSeek Harness(DSH)换皮肤的工具箱。装一次,之后全在界面里点。
English · 功能规划与架构 · 做自己的皮肤 · 故障排查

它能做什么
- 十套内置壁纸皮肤,一张壁纸对应一套完整配色:云海星球、比奇堡晴日、白崖小径、冷峻次元、冰川河谷、暮色湖灯、海岸霓虹、海边书屋、富士夜色、晴空仰望。
- 换皮肤不用重启。点一下卡片,界面立刻变。
- 三个滑杆实时调参:主界面面板不透明度、壁纸模糊、壁纸亮度。点击「设置」打开的整个对话框固定为 70%,设置之外的主界面仍可自由调节。
- 自己的图片或视频一键变皮肤。每次上传都会新增一张皮肤卡;mp4/webm 保留原始画质和帧率,ffmpeg 只负责取色,图片和其他视频格式才做必要优化。
- 调好的皮肤能打包分享。导出一个
.dshskin文件,配色、参数、壁纸都在里面,别人导入就是一模一样的效果。 - 体检和安全卸载。DSH 有个坑:profile 里列了却解析不到的插件会让它直接启动不了。
doctor专治这个,包括别人留下的悬空依赖。
快速开始
# 装进 DSH(默认桌面端 profile,其次 web)
npx github:mysn777/dsh-skin-kit install
# 重启一次 DSH,然后打开 设置 →「皮肤工坊」
不想开界面也行:
npx github:mysn777/dsh-skin-kit list # 看有哪些皮肤
npx github:mysn777/dsh-skin-kit use fuji-night # 换皮肤
npx github:mysn777/dsh-skin-kit set alpha=0.5 blur=12
把自己的素材变成皮肤:
dsh-skin-kit diy ./我的壁纸.jpg --name "我的皮肤"
dsh-skin-kit diy ./城市夜景.mp4 --name "夜行" # 视频动态壁纸也行
需要更多静态或动态壁纸,可浏览哲风壁纸。它是独立第三方网站,与本项目不存在隶属、合作或授权代理关系。本项目不镜像或再分发该站素材;下载和使用前请确认具体素材许可,并遵守网站用户协议及原作者权利。
需要 Node.js ≥ 18.17。不需要 pnpm,也不需要任何构建工具——绝大多数 DSH 桌面端用户机器上没有 pnpm,所以这个工具自己完成 profile 接线。 ffmpeg 是可选的:装了可自动取色、优化图片并转换非 mp4/webm 视频;直传 mp4/webm 不转码。
十套内置皮肤
| id | 名称 | 风格 |
|---|---|---|
bikini-breeze | 比奇堡晴日 | 明亮海蓝、珊瑚橙点缀 |
chalk-cliffs | 白崖小径 | 海岸草坡、温柔浅色 |
cloud-orbit | 云海星球 | 黑色太空、蓝色地球 |
cold-anime | 冷峻次元 | 雪原灰蓝、冰蓝高光 |
fuji-night | 富士夜色 | 深蓝山影、暖光小店 |
glacier-river | 冰川河谷 | 雪山河流、青绿冷色 |
ocean-avenue | 海岸霓虹 | 紫红晚霞、街头路牌 |
seaside-study | 海边书屋 | 晴海书亭、暖木点缀 |
skyward-blue | 晴空仰望 | 蓝天树影、清透浅蓝 |
twilight-lake | 暮色湖灯 | 蓝调湖面、暖色路灯 |
十套内置皮肤和今后新建的图片/视频 DIY 皮肤统一默认:主界面不透明度 15%、模糊 0px、壁纸亮度 100%。这组值不模糊、不增减原片亮度,并尽量少遮挡壁纸;手动参数仍可覆盖。
命令一览
| 命令 | 作用 |
|---|---|
install [--profile <名>] | 装进 DSH profile |
uninstall [--purge] | 卸载;--purge 连皮肤和壁纸数据一起删 |
doctor [--fix] | 体检所有 profile,找出会让 DSH 起不来的条目 |
list | 列出皮肤和当前状态 |
use <id|none> | 换皮肤 / 关掉皮肤 |
set alpha=.. blur=.. brightness=.. | 调参数 |
diy <图片或视频> | 生成一套自己的皮肤 |
export [id] [--out 文件] | 导出 .dshskin |
import <文件> | 导入 .dshskin |
prune | 清理没人引用的壁纸文件 |
通用参数:--home <路径> 指定 DSH home(默认 $DSH_HOME 或 ~/.dsh),--json 输出机器可读结果。
它怎么工作
dsh-skin-kit(一个包,三重身份)
├─ CLI 装/卸/体检/DIY/导入导出
├─ DSH host 半 /api/skin-kit/* 路由 + 配置读写 + 壁纸伺服
└─ DSH client 半 套用皮肤 + 「皮肤工坊」设置分区
三个值得说的设计:
皮肤改的是设计令牌,不是类名。 DSH 前端所有颜色都读 --dsw-* CSS 变量,本工具覆盖其中全部 80 个。相比去命中 .pI_x6G_frame 这种构建期哈希类名,DSH 升级后不容易碎。
壁纸走 HTTP 路由,不塞进 JS。 用户上传的素材走 /api/skin-kit/wallpaper/<id>,文件在 ~/.dsh/skin-kit/wallpapers/;随包默认壁纸走 /api/skin-kit/asset/<skinId>,文件在插件的 skins/assets/。这样不会把图片或视频膨胀进 client.js。
随包资产单文件上限 600KB。 npm test 会扫描 skins/assets/,任何文件超限都直接失败。原因不是浏览器加载不了,而是项目要保持 npx github: 首次拉取够快;十张图如果不设闸门,很容易把一个轻量插件拖成几十 MB。
CSS 在浏览器里现算。 皮肤编译器是纯函数,客户端自带一份,所以换皮肤和拖滑杆都不用等服务端往返。三个实时参数还进一步做成 CSS 变量(--dsk-alpha / --dsk-blur / --dsk-brightness),拖滑杆连样式表都不用重写,只改一个变量。
用户数据都在 ~/.dsh/skin-kit/ 下:config.json(当前皮肤和参数)、skins/*.json(自建皮肤)、wallpapers/(用户壁纸原文件)。十张默认壁纸随插件副本安装,不混进用户数据。
隐私与故障排查
所有图片、视频、取色和压缩都在本机完成,不会上传到 dsh-skin-kit 或哲风壁纸。遇到安装、profile、ffmpeg 或视频播放问题,请先看故障排查。安全漏洞请按 SECURITY.md 私密报告,不要直接贴到公开 Issue。
开发
npm test # 58 条用例:编译器、profile 接线、HTTP 路由、客户端 DOM 行为
npm run build # 重新生成 lib/client.js(改了 src/ 就要跑)
lib/client.js 是构建产物但要提交进仓库——用户是直接从仓库装的,不会自己构建。有一条用例专门比对它和源码是否同步。
版本记录见 CHANGELOG.md。
许可
代码使用 MIT 许可。十张随包壁纸不自动继承 MIT,来源和允许范围见 ASSET_LICENSE.md 与 skins/assets/README.md。