← Back to home@JonathanChang-alt

dsh-86-zone-ui

86 EIGHTY-SIX themed skin plugin for DeepSeek Harness — line-art HUD, tactical status rail with live metrics, hex rain, live event stream.

Stars
0
Language
JavaScript
Created
Oct 26, 2026
Updated
Oct 26, 2026

Introduction

86 -不存在的战区- · DSH 皮肤插件

一个面向 DeepSeek Harness 的完整皮肤插件,不是纯 CSS 换色: 蓝黑底 + 青蓝线条 + 扫描层,右上角蕾娜线稿 HUD,右栏一座第 86 区战术状态台, 读的是本机真实指标,头像可以换,左上角锁标会自己动。

总览

快速开始: git clone → pnpm add link: → 把 dsh-86-zone-ui 加进 package.json 的 dsh.profile.bundles → 重启。 详见 安装,Windows 与 macOS 各有完整步骤。

功能

视觉

功能说明
背景图铁轨夜景铺在 <html> 上,基础面令牌转半透明让图透出来;四档强度(关 / 淡 / 中 / 浓)。切对话时会被壳层重置,插件用增量扫描 + 定期复检把它拉回来
左上 86 锁标大号 86 + 片假名 + [EIGHTY SIX] 框,四层动效:扫描光带 6.5s、数字色散抖动 5.7s、片假名解码闪烁 4.3s、方框脉冲 3.9s —— 四个周期互质,永不整齐划一
右上 HUD 头像线稿头像 + 四角框 + VLADILENA MILIZÉ / HANDLER 01 铭牌 + Para-RAID 指示灯;5 张头像可切换,状态台展开时放大居中变成该列页眉
装饰层扫描线 / 技术网格 / 暗角 / 竖向扫光带,全部 pointer-events: none
Hex 数据雨全窗口 canvas,约 11fps,径向遮罩让中心留空,窗口不可见时 cancelAnimationFrame
空会话水印86 描边字压在空会话主视觉后面,注册在 conversation.hero.brand.mark 槽位,有对话时自动消失
底部状态条24px 滚动条,内容是真实 CPU / 内存 / 磁盘 / 负载 / uptime
顶栏标签「对话 / 上下文 / 编队」按文字定位后加编号与批示线
左侧栏导航项编号 + 分组批示线 + hover 光条;主操作按钮「新会话」不编号、保持顶格
代码与滚动条代码块左侧 2px 批示线,行内代码描边,链接改青蓝,8px 青色滚动条
账号区账号行下方加 HANDLER 01 · 管制指挥官 · ● PARA-RAID 军阶行

战术状态台

状态台

可收起、可折叠分区,头部三个快捷开关(扫描线 / 数据雨 / 背景)加一个界面重载按钮。

区块内容
SYSTEMCPU 60 点迷你曲线(2 秒一采样,两分钟窗口)、MEM / DISK 分段条、网络上下行(netstat 差分)
Para-RAID扇区雷达(conic-gradient 扫描面 + 三个错相光点)+ 同步率大读数(由 CPU 反推,空载 ≈99%、满载 ≈82%)+ 34 根波形
事件流真实事件,不是假数据:主题启用、背景加载、CPU 跨过 85%、指标轮询失败、状态台开合、标签页与侧栏的识别结果
告警态CPU > 85% 或磁盘 > 90% 时,描边与同步率转橙红,标题栏出现「负载偏高」
页脚主机名、UPTIME、RSS、补给窗口倒计时(指向下一个本地 03:00)

设置页

「第 86 区」一页,共 18 项:

主题总开关 · 扫描线 · 技术网格 · 暗角 · 状态台亮度 · 头像亮度
预览(HUD / 锁标 / 状态台)
Hex 数据雨 · 空会话水印 · 顶栏标签战术化 · 底部状态条
背景图 · 左上 86 锁标 · 右上 HUD 头像 · 头像(5 选 1)· 头像呈现
状态台默认展开 · 侧栏名称 · 窗口标题 · 重置

截图

ID 卡(5 张头像)左侧栏
ID 卡侧栏
锁标动效顶栏标签
锁标标签

安装

四个步骤,macOS / Linux 与 Windows 各一份。第 3 步是关键,漏了不会生效。

macOS / Linux

# 1. clone 到任意目录(不要放进 .dsh,升级时会被覆盖)
git clone https://github.com/JonathanChang-alt/dsh-86-zone-ui.git \
  ~/Documents/plugins/dsh-86-zone-ui

# 2. 用 link: 装进 profile(别用 cp,link 才能改完即时看到)
cd ~/.dsh/profiles/desktop
pnpm add link:$HOME/Documents/plugins/dsh-86-zone-ui

# 3. 编辑该目录下的 package.json,把下面这行加到 dsh.profile.bundles 末尾
#    "dsh-86-zone-ui"

# 4. 完全退出 DeepSeek Harness,再打开

Windows(PowerShell)

推荐用脚本,不要手改 JSON —— 手工改 package.json 在 Windows 上有一个致命陷阱,详见下面的警告。

# 1. clone
git clone https://github.com/JonathanChang-alt/dsh-86-zone-ui.git `
  "$env:USERPROFILE\Documents\plugins\dsh-86-zone-ui"

# 2. 跑安装脚本(会自动 link + 写 bundles + 校验,全程无 BOM)
cd "$env:USERPROFILE\Documents\plugins\dsh-86-zone-ui"
powershell -ExecutionPolicy Bypass -File .\install.ps1

# 3. 完全退出 DSH 再重开

如果你想手工做,第 2 步也可以拆成:

cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add link:"$env:USERPROFILE\Documents\plugins\dsh-86-zone-ui"
notepad "$env:USERPROFILE\.dsh\profiles\desktop\package.json"

⚠️ 手工改 package.json 会让整个 DSH 起不来

Windows PowerShell 5.1 的 Set-Content -Encoding UTF8 会写入 UTF-8 BOM(EF BB BF)。 DSH 启动时用 Node 的 JSON.parse 读 profile 清单,它不接受 BOM:

JSON.parse('\uFEFF{"name":"..."}')  →  SyntaxError: Unexpected token ''

后果不是「皮肤不生效」,而是整个应用无法启动,弹窗报 Unexpected token ' ', "{ ... is not valid JSON。

更坑的是:用 PowerShell / .NET 自查会通过,因为 ConvertFrom-Json 容忍 BOM。 「我看过文件了,是合法 JSON」和「DSH 起不来」可以同时成立。

写完必须用 Node 校验(和宿主同一套解析):

node -e "const fs=require('fs');const b=fs.readFileSync(process.argv[1]);if(b[0]===0xEF&&b[1]===0xBB&&b[2]===0xBF)throw new Error('has BOM');JSON.parse(b.toString('utf8'));console.log('OK')" "$env:USERPROFILE\.dsh\profiles\desktop\package.json"

仓库里也有现成的:node tests/manifest.mjs <那个 package.json 的路径>

已经崩了怎么救: 崩溃弹窗里点第三个按钮 「Disable third-party plugins, back up profile patch, and restart」, 或把 bundles 里的 dsh-86-zone-ui 删掉后重启。

第 3 步改完应该长这样(注意逗号):

"dsh": {
  "profile": {
    "bundles": [
      "@deepseek-ai/dsh-base",
      "@deepseek-ai/dsh-web-app",
      "dsh-86-zone-ui"
    ]
  }
}

也可以在插件管理器里装

DSH 的插件管理器有「添加本地插件」,指向 clone 下来的目录即可,它等价于第 1、2 步。 但装完之后仍然要确认第 3 步——插件管理器有时会把 bundles 重写成它自己的清单。

装完自检

重启后依次确认:

检查点正常不正常怎么办
右上角蕾娜头像出现见下方排查
设置页有「第 86 区」一栏有说明插件没被加载,bundles 写错了
左下角有「战术状态」按钮有同上
状态台里 CPU 有数字有宿主路由没起,检查是否完整重启(不是刷新)

排查

现象原因
设置页没有「第 86 区」package.json 的 bundles 里没加,或 JSON 语法错(多/少逗号)
有设置页但没有头像assets/avatar.png 没被读到,确认 clone 完整
整个界面变黑或没反应同时装了两个主题插件,先移除另一个
头像变成占位图形/86-ui/avatar 返回 404,检查 assets/ 目录是否存在
事件流说「背景已加载」但画面看不到背景大面板实际底色不是 rgb(4,8,15)(常见是 rgb(7,13,22)),清扫判定落空;见 PITFALLS #11
指标全是 —宿主没重启(index.js 改动必须重启,刷新不够)

只有宿主文件(index.js)改动需要重启;客户端(client.js)刷新界面即可。

平台支持

功能macOSWindowsLinux
皮肤 / HUD / 状态台 / 数据雨 / 事件流✅✅✅
CPU 曲线、同步率、内存✅✅✅
磁盘占用✅✅ fs.statfsSync✅
网络上下行✅ netstat -ibn✅ netstat -e➖ 显示 —
负载 loadavg✅➖ 恒为 0.00(系统没有此概念)✅
内存精确度✅ vm_stat 修正✅ 直接用 os.freemem()✅
install.sh / restore-profile.sh✅➖ 需 Git Bash 或 WSL✅

Windows 上装插件用 pnpm 即可,两个 shell 脚本只是便利工具:

cd $env:USERPROFILE\.dsh\profiles\desktop
pnpm add link:$env:USERPROFILE\Documents\plugins\dsh-86-zone-ui

宿主路由

三条只读本地路由,没有任何第三方外联:

路由内容
GET /86-ui/metricsCPU / 内存 / 磁盘 / 负载 / 网络吞吐 / RSS / uptime
GET /86-ui/avatar?art=NN头像;NN ∈ 01..04 时取 assets/portraits/NN.png,其余回退 assets/avatar.png
GET /86-ui/background背景图

都先过 connection.requestRejection(req) 鉴权闸门。

macOS 上内存用 vm_stat 修正(os.freemem() 会把缓存算成已用,显示约 99%), 网络用 netstat -ibn 的累计字节做差分 —— 固定 argv、不拼 shell、不读用户输入。

结构

client.js          浏览器侧全部内容,单文件(约 125 KB)
index.js           宿主侧路由与采样(约 12 KB)
assets/            背景图、默认头像、4 张可选头像
docs/              README 用的截图(preview/ 是工作目录,不进仓库)
scripts/           头像描线与主视觉合成脚本(PIL)
tests/             205 项检查,见下
install.sh         一键安装(macOS / Linux)
install.ps1        一键安装(Windows,用 Node 写 JSON,天然无 BOM)
PITFALLS.md        这个项目踩过的坑,动手前值得先读
PROMPTS.md         生图提示词(头像 / 背景 / 主视觉)

测试

node tests/selfcheck.mjs   # 57  静态红线:无外联、无 base64、对比度、体积
node tests/contract.mjs    # 29  插件契约:槽位注册、主题令牌、卸载清理
node tests/host.mjs        # 38  路由:鉴权、MIME、字节一致、?art= 回退
node tests/audit.mjs       # 67  跨文件一致性:设置键、字段、类名、残留引用
node tests/render.mjs      # 14  渲染冒烟:用桩 React 真跑每个槽位组件
node tests/manifest.mjs    # 10  清单卫生:BOM、JSON.parse、bundles 内容

audit 与 render 是为两类真实事故加的:

  • 静默失效:store.get('x') 拼错、宿主少发一个字段、类名没有对应样式 —— 语法检查全都看不见
  • 整棵槽位消失:某个组件渲染时抛错,React 会把整个 slot 卸掉(曾经表现为「状态台突然不见了,但头像还在」)

说明

个人同人作品,角色与作品名归原作者所有,不含任何官方素材。 头像由生成模型产出后经脚本处理(二值化 → 加粗 → 降采样),并非直接描摹官方图。 仅供学习与自用,请勿商用。

许可

MIT