四套 EVA 主题皮肤(二号机/零号机/初号机/八号机)。每套通过主题样式层重绘侧栏、输入框与窗口边框,并带一段 20 秒的开机动画(Canvas 绘制,含身份确认、可跳过、可重播)。输入框旁的胶囊可弹出列表切换皮肤。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-eva-skins
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Iris-change/dsh-eva-skins
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness 桌面客户端的原生皮肤插件:一个插件,四套皮肤,可在应用内随时切换,随时切回默认主题。
不修改 DSH 安装目录、不替换 app.asar、不需要独立启动器——皮肤就是 DSH 里的一个插件,从 DSH 桌面图标启动即生效。
预览
开机动画(约 20 秒,可 Esc 跳过,可 Ctrl+Alt+B 重播)

四套皮肤的工作台

切换皮肤:点输入框左侧的胶囊

版权声明(请先读这一段)
代码以 MIT 授权;EVA 素材与随包第三方组件的授权边界见 NOTICE.md。
代码(lib/、client/client.js、安装脚本)以 MIT 许可发布。
图像与音频素材不在此许可范围内:EVANGELION、NERV、EVA 机体与角色形象(明日香 / 绫波丽 / 碇真嗣 / 真希波)版权归 khara 所有。本仓库把它们作为粉丝创作一并分发,未取得授权,作者不对这些素材主张任何权利,也不用于任何商业用途。若版权方提出异议,相关素材会立即下架。介意版权的话,可按文末「替换素材」换成中性占位图,代码与全部交互逻辑不受影响。
一、安装
方式 A:zip(推荐,最简单)
到 Releases 下载对应平台的包:
| 平台 | 文件 | 装法 |
|---|---|---|
| Windows | dsh-eva-skins-<版本>.zip |
解压后双击 一键安装.cmd |
| macOS | dsh-eva-skins-<版本>-mac.zip |
解压后 bash install-mac.command |
装完必须彻底退出 DSH(任务栏图标右键退出,或任务管理器结束 DeepSeek Harness.exe),再重新打开。只关窗口不算。
方式 B:从仓库直接装(免下载 zip)
git clone https://github.com/Iris-change/dsh-eva-skins.git
dsh plugin --profile desktop add ./dsh-eva-skins
或者不放命令,把仓库地址丢给 DSH 里的 agent:「帮我把这个皮肤装上」。
本地路径方式在 profile 里记的是
link:软链 —— 这个文件夹删了,皮肤就失效。想长期用建议留着它,或者走方式 A。
方式 C:npm
已经发布到 npm,一条命令:
dsh plugin --profile desktop add dsh-eva-skins
装完彻底退出 DSH 再打开(关窗口不算退出)。
更新到新版本
皮肤不会自动更新,要有意识地手动跑一次。
⚠️ 注意:不带版本号的 add 不会升级。实测:先装 2.1.2,之后跑 add dsh-eva-skins(甚至 add dsh-eva-skins@latest)都还是 2.1.2 —— 因为 profile 里已经把版本号钉死了。必须写死目标版本,或者先删再装:
# 升级到指定版本(把 2.1.6 换成 Releases 页上的最新版本号)
dsh plugin --profile desktop add dsh-eva-skins@2.1.6
# 或者:先卸载,再装最新
dsh plugin --profile desktop remove dsh-eva-skins
dsh plugin --profile desktop add dsh-eva-skins
改完同样要彻底退出 DSH 再打开。
为什么不做自动更新:插件运行在 DSH 进程内部,替换自己的文件必须重启应用;宿主目前没有提供「插件自更新」接口;而且让一个界面插件自动下载并执行新代码,也不适合默认打开。
让 agent 帮你装
也可以直接把仓库地址丢给 DSH 里的 agent:「帮我把这个皮肤装上」。它会执行 dsh plugin add。前提是给会话完全访问权限(安装要写 ~/.dsh/profiles/desktop/,工作区之外的写入在 workspace-write 模式下会被拒绝)。
二、切换皮肤
装好后,输入框左侧会出现一个胶囊按钮:
● UNIT-02 ▾
点开是一个列表,四选一(外加「默认主题」):
| 皮肤 | 机体 | 配色 |
|---|---|---|
ASUKA · UNIT-02 |
二号机 | 红橙 |
REI · UNIT-00 |
零号机 | 白蓝 |
SHINJI · UNIT-01 |
初号机 | 紫绿 |
MARI · UNIT-08 |
八号机 | 粉绿 |
默认主题 |
— | 回到 DSH 原生外观 |
快捷键
| 组合 | 作用 |
|---|---|
Ctrl + Alt + U |
开 / 关皮肤 |
Ctrl + Alt + B |
重播开机动画 |
Esc |
跳过开机动画 |
控制台 API
window.unit02Skin.setSkin("rei") // "off" | "asuka" | "rei" | "shinji" | "mari"
window.unit02Skin.replayBoot()
window.unit02Skin.openPicker()
选择会存进 localStorage,下次启动保持一致。
三、开机动画
每套皮肤都有自己的开机序列(EVANGELION-02 / 00 / 01 / 08):系统唤醒 → LCL 注入 → 同步率 → 驾驶员确认卡 → 转场到工作台。
- 时长约 20 秒,中间在 13.3 秒处定格等确认,点「驾驶员确认,开始同步」继续
- 右下角「进入工作台」或
Esc可直接跳过 - 每次重新打开应用播一次;20 分钟内刷新页面不重复播放
- 动画里的日文播报来自
media/**/voice.wav,默认开启;无声卡环境会自动回退到挂钟计时
四、已知限制
- 窗口标题栏改不了。右上角
— □ ✕那条是 Electron 主进程绘制的titleBarOverlay,颜色写在 exe 里,插件的 CSS 触碰不到。缓解方式:页面顶部有一条 2px 的皮肤色细线做衔接。 Ctrl+R不一定能重载。本版本应用菜单未绑定重载快捷键;改完皮肤请彻底退出再启动。- macOS 安装脚本未在真机验证。
install-mac.command里的 DSH 路径按 Windows 版结构推断,并带command -v dsh兜底;报not found请在 Issue 里附上ls /Applications的结果。
五、目录结构
dsh-eva-skins/
├── package.json 插件身份(name / dsh.bundle / dsh.client / files)
├── cordis.patch.yml 装进 DSH 的入口,只有一条 insert
├── lib/index.js host 侧:为四套动画各注册一条静态路由
├── client/
│ ├── client.js 主题 token、侧栏、边框、胶囊、菜单、iframe 壳
│ ├── intro/ 二号机素材(25 个文件)
│ ├── intro-rei/ 零号机素材(31)
│ ├── intro-shinji/ 初号机素材(26)
│ └── intro-mari/ 八号机素材(27)
├── 一键安装.cmd / 卸载.cmd / 使用说明.txt
├── install-mac.command / uninstall-mac.command
└── README.md / LICENSE / .gitignore
四套皮肤共用一个 client.js:它读当前皮肤 id,加载对应的动画 iframe(/unit02-intro/ /rei-intro/ /shinji-intro/ /mari-intro/),再把 CSS 变量与装饰层切过去。不是四个插件,所以不会出现四份样式互相覆盖。
新增一套皮肤的改动点在 client.js:SKIN_IDS、SKINS、INTRO_SRC、CSS 块、lib/index.js 的 MOUNTS —— 五处。
六、卸载
dsh plugin --profile desktop remove dsh-eva-skins
或运行 卸载.cmd / bash uninstall-mac.command,然后彻底退出重开。
七、替换素材(想开源/商用时的做法)
动画按目录读图,替换同名文件即可,不需要改代码:
| 文件 | 用途 |
|---|---|
client/intro*/media/pilot/*.png |
确认卡上的驾驶员头像 |
client/intro*/media/pilot/*lineart*.png |
工作台右侧的人像线稿 |
client/intro*/media/eva/nerv-mark.svg |
侧栏与动画里的 NERV 叶标 |
client/intro*/media/audio-*/voice.wav |
开机播报音轨 |
换成中性占位图后,这套皮肤的代码与交互逻辑可以完整保留并公开分发。
八、开发与发布
# 本地验证(不上桌面端,跑一个 web profile 观察界面)
dsh --profile web --no-open --host 127.0.0.1 --port 43137
# 输出里带 token 的 URL 直接打开
# 发布
npm version patch
npm publish
git push --follow-tags
package.json 的 files 只包含 lib、client、cordis.patch.yml、README.md、LICENSE,所以 npm 包里不会混进安装脚本以外的杂项。
版本历史见 CHANGELOG.md。
链接
同类插件
elysia395/dsh-wallpaper-engine★ 6210
前置要求:DeepSeek Harness 0.1.5-rc.1+(DSH Desktop ≥ 2.0.7)且 dsh-better-sidebar ≥ 0.19.0,安装或更新本插件前请先更新两者。把本机 Wallpaper Engine 的 Video/Web 壁纸实时播放到聊天界面后方,Scene 壁纸由内置渲染器输出完整场景帧,支持内容分级/类型过滤、自定义壁纸上传与 iOS 液态玻璃设置窗口。
Small-tailqwq/dsh-deep-whale#maid-atelier★ 3081
DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。
Nwflower/dsh-claude-style★ 542
为 DSH Web GUI 复刻 Claude Code Desktop 的视觉与交互——象牙白/暖黑双画布、陶烬橙强调色、三字体排版、权限分段控件与品牌切换,以 CSS 覆盖与客户端 DOM override 实现。
d-dev0101/open-sea-skin★ 389
实时 WebGPU 海洋皮肤,可快捷调节波浪、日光、玻璃不透明度与自动昼夜循环。
kingOfSoySauce/dsh-liang-skin★ 375
自适应推理等级滑块皮肤,将当前模型可用档位映射到 0–30 视觉强度,并同步人物、背景和界面配色。
RevolutionLA/dsh-dream-skin★ 301
一键换肤插件:8 套原创主题、背景壁纸(透明度/模糊)、强调色、主题包导入/导出+分享链接、收藏与随机,纯原生 token 系统接入。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。