npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-plugin-shell-skin

v0.2.1

Published

A skin for DeepSeek Harness: opening animation, custom wallpaper, and panel opacity, applied as you change them.

Readme

dsh-plugin-shell-skin 🐚

给 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 [email protected]: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:

  1. 改 package.json 的 version,更新 CHANGELOG.md,提交;
  2. 打 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。

许可

代码:MIT。

二次创作约定

欢迎基于本项目做衍生、改版或换皮。MIT 允许你自由使用、修改和再分发,保留 LICENSE 即可。

如果你愿意在公开渠道(GitHub 仓库、产品页等)顺手注明原项目,对作者是很大的鼓励:

https://github.com/raven3005672/dsh-plugin-shell-skin

这不是 MIT 的附加条件,只是一条君子协定。

素材

assets/ 里的内置壁纸是 AI 生成的演示预设,用来展示壁纸、透明度和随机切换这些功能,不是任何第三方角色的官方授权素材。它们随插件一起分发;如果单独复用,注明来源即可。