dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:0nt-one/dsh-neo-skin
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Neo-brutalism skin for DeepSeek Harness Web UI — 新粗野主义换肤插件:硬边框、高对比、色块分明的粗野主义风格,内置两套方案可随时切换。
| 浅色 · 蓝统治 | 深色 · 蓝统治 | 做旧报纸 |
|---|---|---|
![]() |
![]() |
![]() |
截图放
screenshots/目录,文件名对应上表;开发期也可打开仓库里的preview.html交互对比两套方案 × 浅/深色。
| 方案 | Light 浅色 | Dark 深色 |
|---|---|---|
| 蓝统治 Blue Command(默认) | 深蓝侧栏 + 米白纸感 | 蓝黑画布 |
| 做旧报纸 Aged Newspaper | 泛黄纸 + 墨字 + 衬线报头 | 报纸夜间版 |
A zero-dependency client skin plugin for the DeepSeek Harness Web UI. It stacks a
neo-brutalism palette and structure over the built-in light/dark themes via the official
theme service — it never replaces the built-in theme, so the Appearance row
(light / dark / system) keeps working and your skin applies to both palettes.
localStorage, no reinstall):dsh-voice-input UI (popover, pills, states) to the skin# 1. build the bundle (zero deps, no npm install)
npm run build
# 2. install into the web profile
dsh plugin --profile web add <path\to\dsh-neo-skin>
# 3. register the roster row in .dsh/profiles/web/cordis.patch.yml:
# - insert:
# - id: dsh-neo-skin
# name: 'dsh-neo-skin'
# 4. restart `dsh --profile web`
On the first install the host must restart to mount the plugin; afterwards a browser hard-refresh is enough to pick up rebuilt bundles.
DSH 官方主题插件(@deepseek-ai/dsh-client-ui-theme)提供 theme 服务,
ui-layout 把当前主题快照的 token 以 inline CSS 变量写到 <body>。
本插件调用 ctx.theme.overrideTokens(source, tokens),把 --dsw-alias-* 语义 token 的
{ light, dark } 双配色表叠加到官方浅色/深色之上——右上角外观里的
浅色 / 深色 / 跟随系统 三档照常工作。
localStorage: dsh-neo-skin.enabled(默认开启);关闭即回到官方配色。dsh-neo-skin.scheme,实时切换整套配色 + 结构覆写。_card/_bubble/_panel/_code/_option…)、2px 粗边框、按钮按下位移反馈。dsh-voice-input 弹层/按钮/状态色主题化(它引用了
不存在的 --dsw-alias-* token,走 fallback 会在浅色下黑底黑字,皮肤里已修正)。注意:结构层通过
[class*="_xxx"]可读后缀选择器命中组件(哈希变化不碎), DSH 大版本重构类名时可能需要微调;圆形小元素(状态点、头像、spinner)保持圆形。为什么用
localStorage而不是dsh-settings命名空间:host apiproxy 只对白名单 (WEB_SETTINGS_NAMESPACES)开放settings.describe,第三方插件注册的命名空间会得到settings-not-exposed;官方把"让插件自行暴露配置"列为 deferred work。用 localStorage 保证插件自包含、可直接发布,无需改 DSH 核心。
cd <path\to\dsh-neo-skin>
npm run build
dsh plugin --profile web add <path\to\dsh-neo-skin>
# 然后在 .dsh/profiles/web/cordis.patch.yml 注册:
# - insert:
# - id: dsh-neo-skin
# name: 'dsh-neo-skin'
# 重启 dsh --profile web
src/schemes/<name>.tokens.json(light/dark 配色表)、
<name>.meta.json(显示名)、<name>.css(方案专属结构覆写)。npm run build,浏览器硬刷新即可(无需重启 host)。design-platform.css:--dsw-alias-bg-* / border-* / label-* /
button-* / interactive-* / state-*,--dsw-specific-* 局部专用。dsh-neo-skin/
├── client.js # 构建产物:浏览器 bundle(__ModuleLoader__ 格式)
├── package.json # dsh.client 元数据声明自己是 web 客户端插件
├── preview.html # 开发期方案对比预览页(不打包)
├── src/
│ ├── bundle.template.js # bundle 模板(占位符注入)
│ └── schemes/ # ★ 换肤核心:每方案 token 表 + 结构覆写
│ ├── blue.tokens.json # 「蓝统治」light/dark 配色表
│ ├── blue.meta.json # 方案显示名
│ ├── blue.css # 深蓝侧栏文字覆写
│ ├── newspaper.tokens.json # 「做旧报纸」light/dark 配色表
│ ├── newspaper.meta.json
│ └── newspaper.css # 衬线报头 / 徽章解耦
└── scripts/
└── build.mjs # 零依赖构建:编译 schemes → client.js
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skin、theme。