DPH Endfield Theme
为 DeepSeek Harness(DSH)Web 界面制作的非官方联动主题。它保留 DSH 原有功能与文案,只改变界面配色、面板结构、交互动效,并在输入框左侧加入会随会话状态切换的角色动画。
[!IMPORTANT] 本项目是非官方同人主题,与 DeepSeek、Hypergryph、Gryphline 及相关权利方无隶属或授权关系。公开分发前请阅读文末的素材说明。
界面预览
首页

会话页

角色动画状态
| 待机 | 用户输入中 | 模型思考/执行中 |
|---|---|---|
![]() |
![]() |
![]() |
| 无输入且模型空闲 | 检测到键盘、输入或输入法组合事件 | 检测到模型生成或任务执行状态;页面中还会出现问号动效 |
三种状态均为 24 帧循环动画,角色脚底锚点固定,切换状态时不会改变站位。启用系统“减少动态效果”后,主题会停止非必要动画。
主要特性
- 冷黑工业界面与荧光黄色状态信号;
- 切角面板、侧栏状态条、顶部联动栏和响应式布局;
- 首页、会话页、输入框、设置弹窗及常用控件统一主题;
- 待机、输入、思考/执行三套角色动画;
- 自动处理输入框文字层、光标层和高度镜像层,避免文字重影与光标漂移;
- 角色区域在空间不足或设置弹窗打开时自动隐藏;
- 运行素材由插件自身提供,无需手动复制 PNG 到 DSH 安装目录;
- 只作用于
webprofile,不修改 DSH 核心包和会话数据。
安装
在 DSH 对话中让助手安装
发布后,普通用户可以先把当前会话权限切换为 Full Access,再把下面这段话发送给 DSH:
请访问 https://raw.githubusercontent.com/thjyy/dph-endfield-theme/main/INSTALL.md,先阅读并核对安装说明,
然后为 web profile 安装其中指定的 DPH Endfield Theme。
不要执行说明之外的远程脚本;完成后告诉我验证结果和需要怎样重启 DSH。
助手会在得到用户授权后运行透明、可检查的 dsh plugin 命令。这里不能完全静默安装:DSH 默认的 Workspace Write 权限不能修改用户目录中的 profile,而且正在运行的 DSH Web 必须由用户重启后才会加载新主题。
仓库内为这个流程准备了独立的 INSTALL.md。也可以让自有域名把 /INSTALL.md 指向该文件。
使用 CLI 从 GitHub 安装
dsh plugin --profile web add github:thjyy/dph-endfield-theme
更稳妥的做法是锁定一个确认过的提交:
dsh plugin --profile web add github:thjyy/dph-endfield-theme#<commit-sha>
项目包含预构建的浏览器代码,不需要在安装阶段运行构建脚本。安装完成后重新启动 DSH Web:
dsh web
浏览器仍显示旧样式时,使用 Ctrl + F5 强制刷新。
从本地目录安装
在项目根目录执行:
dsh plugin --profile web add .
dsh web
也可以传入项目的绝对路径:
dsh plugin --profile web add "D:/path/to/dph-endfield-theme"
更新与卸载
# 更新通过 GitHub 或包地址安装的版本
dsh plugin --profile web update dph-endfield-theme
# 卸载主题
dsh plugin --profile web remove dph-endfield-theme
更新或卸载后请重新启动 dsh web。
工作方式
仓库根目录本身是一个可安装的 DSH bundle:
cordis.patch.yml把主题加入webprofile;plugin/lib/client.js在浏览器端注入主题样式、页面装饰和状态动画;plugin/lib/index.js在 DSH Web 服务中注册只读素材路由;plugin/assets/mascot-*-sprite24.png是运行时使用的三张 24 帧精灵图。
插件不会上传提示词、修改模型配置、写入会话内容或替换 DSH 自带包。
项目结构
.
├─ package.json # GitHub / 本地安装入口
├─ cordis.patch.yml # DSH bundle 配置层
├─ plugin/
│ ├─ lib/index.js # Host:提供运行时 PNG
│ ├─ lib/client.js # Web:主题与交互逻辑
│ ├─ assets/ # 运行时精灵图与维护源素材
│ └─ scripts/ # 精灵图构建和串帧校验
├─ docs/images/ # README 截图与 GIF
└─ scripts/export_readme_gifs.py
开发与验证
安装依赖不是使用主题的前提;只有重新导出 README 动图时才需要 Python 与 Pillow。
# 检查浏览器端和 Host 端 JavaScript
node --check plugin/lib/client.js
node --check plugin/lib/index.js
# 校验三张精灵图:尺寸、站位、首尾帧和相邻帧串图
python plugin/scripts/validate_mascot_animation.py \
plugin/assets/mascot-idle-sprite24.png \
plugin/assets/mascot-typing-sprite24.png \
plugin/assets/mascot-thinking-sprite24.png
# 重新生成 README 的三个 GIF
python scripts/export_readme_gifs.py
# 检查最终安装包包含哪些文件
npm pack --dry-run
兼容性
- 仅支持 DSH Web profile;
- 依赖 DSH 的 bundle 与浏览器 client plugin 机制;
- 主题使用少量 DSH DOM 结构选择器,DSH 发生较大界面重构后可能需要同步更新;
- 窄屏会优先保证会话与输入框空间,自动隐藏角色动画。
许可与素材说明
项目代码采用 LICENSE 中说明的 MIT License。角色图像、游戏名称、商标及其他第三方视觉素材不包含在 MIT 授权范围内,其权利归各自权利人所有。
如果要公开发布或二次分发,请确认你有权分发仓库中的角色素材;否则请在发布前替换或移除相关 PNG/GIF。详见 ASSET-NOTICE.md。



No comments yet. Be the first to write one.