Opening animation, three bundled wallpapers, up to nine uploaded wallpapers with random rotation, and live panel and sidebar opacity.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-plugin-shell-skin
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:raven3005672/dsh-plugin-shell-skin
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
给 DeepSeek Harness 换一层外观:开场动画、壁纸、面板透明度,一个设置页全管。
所有效果都在页面里完成,不碰会话、模型请求,也不读写你的文件系统。
名字里的 shell 指应用外壳(app shell),不是侧边栏里的终端;这个插件给整个界面换壁纸和外观,不修改终端配色。
功能特性
| 功能 | 说明 |
|---|---|
| 开场动画 | 页面加载时播放一段约 1.5 秒的动画,然后淡出;系统开启“减少动态效果”时自动跳过 |
| 壁纸 | 自带三张(极光 / 几何弧线 / 鲸娘);也可以上传最多 9 张自己的图片,打开随机模式后每次启动换一张 |
| 面板透明度 | 分别控制浅色 / 深色下侧边栏和面板的透明度,拖动时实时预览 |
| 启动时的底色 | 应用加载前先铺上颜色,避免打开瞬间闪白 |
| 设置页 | 在「设置 → 界面皮肤」里,所有项即时生效 |
| 中英文 | 跟随 DSH 的语言设置,设置页文案与插件卡片都会切换 |
安装
npm(推荐)
dsh plugin --profile web add dsh-plugin-shell-skin
装完重启 DSH——运行中的进程持有内存里的旧插件树。
桌面应用
在「插件」页的安装框里填 dsh-plugin-shell-skin,不用开终端;装完重开应用。
从源码
lib/ 构建产物不入库,clone 后先构建:
git clone git@github.com:raven3005672/dsh-plugin-shell-skin.git
cd dsh-plugin-shell-skin
pnpm install
pnpm build
dsh plugin --profile web add "file:$PWD"
开场动画
三段式:底环呼吸 → 标识亮起 → 整层淡出。可以在设置里关掉,但关闭要刷新一次页面才生效——它改变的是插槽注册,不是纯样式。
壁纸与透明度
深色主题下壁纸会更突出,因为深色面板的默认透明度更低:
壁纸的取值顺序是明确的:
| 自定义壁纸 | 内置壁纸 | 结果 |
|---|---|---|
| 开 + 已选图 | 任意 | 你的图 |
| 开 + 没选图 | 开 | 内置图 |
| 开 + 没选图 | 关 | 无图,只剩首帧底色 |
| 关 | 开 | 内置图 |
| 关 | 关 | 无图,只剩首帧底色 |
选完文件会自动把「自定义壁纸」打开,避免“选了图却没反应”。
设置页
| 设置项 | 何时生效 |
|---|---|
| 开场动画 | 即时(关闭会立刻移除当前动画) |
| 浅色 / 深色面板透明度 | 拖动时实时预览,松手保存 |
| 侧边栏显示壁纸 | 即时 |
| 侧边栏透明度 | 拖动时实时预览,松手保存(两种配色共用) |
| 启动时的底色(浅色 / 深色) | 即时 |
| 自定义壁纸 / 内置壁纸 | 即时 |
| 随机壁纸 | 即时(下次启动从已上传的图片里随机选一张) |
| 图片 | 最多 9 张,支持一次选多张,每张上限 10 MB;点击缩略图切换,悬停右上角可删除 |
| 内置壁纸样式 | 即时;三张缩略图,每行三张 |
| 恢复默认 | 即时重置上面所有设置项(不删除已上传的图片) |
设置页底部还有两个按钮:「报告问题」打开带模板的 GitHub issue;「复制诊断信息」把版本、平台和当前设置复制到剪贴板——不含图片、文件名或任何个人信息。
自定义壁纸存在哪
图片存在当前浏览器的 IndexedDB 里,用 Blob URL 应用到页面,不会上传到 Host:
- 绑定页面 origin:换端口、换浏览器都看不到;
- 不跨设备同步;
- 「移除图片」只删文件,不动开关——删完自动回落到内置图或纯底色。
插件市场
市场索引由 npm 上的已发布版本生成,托管在 GitHub Pages:
https://raven3005672.github.io/dsh-plugin-shell-skin/index.json
在 DSH 里打开 Plugins → More(Experimental plugins)→ Custom plugin markets, 然后 Discover → Add index source,粘贴上面的地址即可浏览和安装。
索引包含 0.2.0 及更早的 0.1.x 版本;每次发新版后需要重新生成索引并更新 gh-pages 分支。
桌面端差异
在 Electron 桌面应用里同样生效,但有两处观感差异:
- macOS 的侧边栏用系统毛玻璃效果,会把面板透明度再乘一次,所以壁纸在侧边栏里更透;
- 桌面端
body本来是透明的(让原生毛玻璃透出来),铺上壁纸后这层毛玻璃就被盖住了。
另外,上传的图片按浏览器地址隔离,Web 和桌面端不会共享。
已知限制
- 开场动画只在页面加载时播放一次,不会在切换设置时重复播放;
- 随机壁纸每次启动只抽一次,调设置不会重新抽;
- 深色面板默认 0.55、浅色 0.85,想更透可以自己调;
- 壁纸按比例铺满窗口,极端长宽比的图片会被裁切(暂不支持平铺或居中);
- 除 macOS 桌面端外,Windows / Linux 上的面板透明和侧边栏透明尚未验证;如果侧边栏不透,属于尚未覆盖的平台,不是配置问题;
- 上传的图片按原尺寸保存,没有做压缩。10 MB 的图解码后可能占用几百 MB 内存,一次放满 9 张时对低内存设备不友好。
开发
pnpm install
pnpm build # lib/index.js + lib/client.js
pnpm typecheck
pnpm smoke # 不启浏览器,加载 client bundle 并断言注册行为
内置壁纸的原图放在 assets/master/(不参与打包),打包用的是 assets/wallpaper-*.jpg;
新增壁纸时改 src/client/index.tsx 的 PRESETS 一处,再补 preset.* 两个语言 key 即可。
边改边看:把 dev.patch.example.yml 复制成 dev.patch.yml,把里面的路径改成
本仓库的绝对路径,然后在 deepseek-harness 目录里挂本地 overlay:
cp dev.patch.example.yml dev.patch.yml # 改 name 为本仓库 lib/index.js 的绝对路径
cd ../deepseek-harness
pnpm dsh web --patch ../dsh-plugin-shell-skin/dev.patch.yml
dev.patch.yml 是本机文件,已在 .gitignore 里,不会提交。
改了前端代码刷新页面即可;改了后端代码或调试用的挂载配置需要重启。
素材与版权声明
插件内置的壁纸插图由作者使用 AI 图像服务生成,原图保存在 assets/master/,不随 npm 包发布。
AI 生成内容的版权状态因司法辖区而异。如果你认为其中某个素材侵犯了你的权益,请通过 Issues 联系作者,附上图片说明与权利依据。确认后我们会尽快替换或移除该素材,并发布新版本。
另外说明:用户自行上传的壁纸只保存在本地浏览器(IndexedDB),不会随插件分发,也不会上传到任何服务器;由用户自行确保其上传内容的合法性。
发布
版本号写在 package.json 里。发布走 GitHub Actions 的 Trusted Publishing(OIDC),不需要本地 token 或 OTP:
- 改
package.json的version,更新CHANGELOG.md,提交; - 打 tag 并推送:
git tag v0.1.4
git push origin v0.1.4
工作流 .github/workflows/publish.yml 会校验 tag 与版本号一致、跑类型检查和 smoke,然后执行 npm publish --provenance。
首次使用需要在 npm 包设置里配置 Trusted publisher(GitHub Actions,仓库 raven3005672/dsh-plugin-shell-skin,工作流文件名 publish.yml)。
本地手动发布(npm publish)仍然可用,但需要网页登录过 2FA。
更新日志
各版本的功能变更与问题修复见 CHANGELOG.md。
许可
Links
More in this category
Small-tailqwq/dsh-deep-whale#maid-atelier★ 2773
Whale-girl skin series for the DSH Web UI (maid-atelier).
elysia395/dsh-wallpaper-engine★ 1792
Requires DeepSeek Harness 0.1.5-rc.1+ (DSH Desktop >= 2.0.7) and dsh-better-sidebar >= 0.19.0 - update both before installing or updating this plugin. Plays local Wallpaper Engine Video/Web wallpapers behind the chat, renders Scene wallpapers as extracted static frames, and adds content-rating/type filters, custom uploads and an iOS-style liquid-glass settings window.
d-dev0101/open-sea-skin★ 402
Realtime WebGPU ocean skin with quick controls for waves, daylight, glass opacity, and an automatic day cycle.
kingOfSoySauce/dsh-liang-skin★ 284
Adaptive reasoning slider skin that maps each model's available reasoning efforts onto a 0–30 visual intensity scale, with synchronized portraits, background, and interface colors.
Nwflower/dsh-claude-style★ 268
Claude Code Desktop look-and-feel for the DSH Web GUI — ivory/warm-black dual canvas, clay accent, three-font typography, permission segmented control and brand switcher, via CSS overrides and client DOM overrides.
RevolutionLA/dsh-dream-skin★ 265
One-command skin plugin: 8 original themes, translucent wallpaper with opacity/blur, per-user accent, and shareable theme-pack import/export, favorites and surprise-me — purely native on DSH's token system.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.