dsh-uxexo
Manifest valid★ 9DSH (DeepSeek Harness) Web UI Enhancement Plugin: 25 Terminal Aesthetics Themes, Chinese-First Fonts, Text Ink Tone, and Official Peak/Off-Peak Alerts · Individually developed by Jiangnanquan and freely open-sourced
dsh-uxexo
中文 | English
DeepSeek Harness(DSH)Web 界面增强插件,由江南泉个人开发并免费开源。它在设置面板里提供独立一页「界面增强」,所有开关即时生效;包含 25 套终端美学配色、文字墨色、中文优先字体、紧凑布局、折叠胶囊,以及账户余额 / 用量与官方峰谷提醒。

能力
| 类别 | 内容 |
|---|---|
| 设置页 | 设置面板左侧独立一页「界面增强」:每项功能即时生效,改完不用重启 |
| 配色主题 | 25 套,取自江南泉《终端美学》三部曲:经典 CRT、纸面浅色、现代双生、AI 品牌;深色主题自动带 color-scheme: dark |
| 文字墨色 | 深墨(默认, 推荐)/ 跟随配色 / 纯黑;只改文字 token,浅色主题生效 |
| 字体 | 中文优先的 0.5 窄体等宽方案(更纱黑体 Mono/Term、Noto Mono CJK、Maple Mono…);字重默认半粗(推荐) |
| 布局 | 加宽消息列、收紧对话间距、对齐新对话输入卡片与 / @ 候选菜单、禁用橡皮筋滚动 |
| 折叠胶囊 | 0.1.x:思考块聚合为 Think ×N、工具调用聚合为 A → B → C 链路胶囊。0.2.0:官方过程分组接管显隐,插件把胶囊摘要挂到「已完成,用时 X」行下方,点击联动官方展开/收起;长链路按可用宽度换行 |
| 账户用量 | 输入框下方显示官方账户余额、本轮 token 成本与近 30 天用量图表;官方 API/账号时附「峰 / 谷」计费徽标,点击查看官方峰谷规则与下一次切换 |
| 强调色 | 发送/停止按钮与侧栏「新会话」统一使用主题第三个锚点色(accent);按钮反白字按每套主题的 on-accent 自动取黑/白 |
长工具链会跟随消息列宽度自动重新分行,每个视觉行保持独立、完整的胶囊轮廓:

设置页顶部还有一枚 GitHub Star 入口:如果 dsh-uxexo 帮到了你,欢迎去仓库点个 Star。
配色主题:江南泉《终端美学》三部曲 25 套
设置页「外观 → 配色主题」用一个下拉切换,按来源分组——全部取自江南泉的《终端美学》三部曲。
命名统一为 English · 中文:英文保留官方原名与变体名(Rosé 的重音也保留),中文只做简短意译,
长名字在下拉里也不会断行。
| 分组 | 主题 |
|---|---|
| 官方 | Official · 官方配色 |
| 经典 CRT(第一部) | P1 Green Phosphor · 绿磷光、P3 Amber Phosphor · 琥珀光、Matrix Rain · 代码雨、Cyberpunk 2077 · 夜之城、Radar Red · 雷达血红、Weyland Corp · 维兰重工、NERV MAGI · 三贤者 |
| 纸面浅色(第二部) | P4 White · 纸白、Everforest Light · 绿色森林、Parchment Classic · 羊皮纸、Solarized Light · 暖羊皮纸、Catppuccin Latte · 拿铁 |
| 现代(第三部) | Tokyo Night · 东京夜、Tokyo Night Day · 东京白昼、Kanagawa Wave · 神奈川·浪、Kanagawa Lotus · 神奈川·莲、Rosé Pine · 玫瑰松木、Rosé Pine Dawn · 玫瑰晨光、Catppuccin Mocha · 摩卡 |
| AI 品牌(第三部) | Claude Light · 书斋浅、Claude Dark · 书斋深、OpenAI Light · 涌现浅、OpenAI Dark · 涌现深、Gemini Light · 极光浅、Gemini Dark · 极光深 |
每套主题只声明底色、正文、强调、状态色四个锚点,其余 surface / border / hover / 反白字
由同一套推导规则生成,所以 25 套的层级关系一致,加新配色只需补一行数据。深色主题会自动
设置 color-scheme: dark,并使用配色自带的墨色;「文字墨色」只对浅色主题生效。
0.2.x 起官方公共菜单改用玻璃材质 --dsw-menu-surface-fill(浅色 58% / 深色 45% + 背景模糊,
macOS 另铺一层 bg-base 做不透明 backing)。本层按「合成后等于本主题 layer-1」反解玻璃填充,
并接管配套的吸顶分组标题 --dsw-alias-menu-group-header-fill(94%)、菜单图标
--dsw-alias-menu-icon 与暗档文字 --dsw-alias-label-primary-dimmed;菜单面内的选中/悬停
底色则重绑到 layer-1 上(全局 hover 是 base + accent,直接落在 layer-1 上几乎同色)。
不接管这几个 token 时,深色主题会继承官方浅色玻璃,菜单就成了深色页面上的一块浅色板。
同一轮把官方 0.2.x 主题表新增的其余 token 也全部接管(共 49 个:文档预览、文件 diff、
状态色阶、遮罩、tooltip / toast、反白与 bluish 标签、轨迹品牌色等)。规则与官方同构:
状态三级色 = 底色混状态色,文件 diff 底/行号区 = 更淡的同色混合,反白标签取与主文字
对立的对比色,link 与深潜标签以 accent 为底做可读性兜底(不足 AA 时向黑/白收),
菜单材质与吸顶标题保持官方 58% / 45% / 94% 的透明度语义。Solarized 手写块保持官方
fallback(浅色主题下官方浅色值本就合规),观感不动。
主题的第三个锚点 accent 会统一应用到发送/停止按钮与侧栏**「新会话」**:前者总是跟随
accent;后者默认跟随,可在「外观 → 新会话按钮弱化」里改成只比侧栏底色略深的弱化样式。
所有非 Solarized 主题的正文在 bg 与 layer-1 上都过 WCAG AA(4.5:1);Solarized 保留
原手写 token 的观感,由墨色档位兜底。东京白昼的正文在原始 #3760BF 上对 layer-1 只有
4.08:1,已压深 4% 到 #2F55B5(4.74:1)。
文字墨色:深墨(默认)/ 跟随配色 / 纯黑
Solarized 的默认正文色是 base01 #586e75(青灰),在暖黄底上会显得「蒙了一层灰」:
基础面 #fdf6e3 上 4.99:1,落到 layer-1 #eee8d5 只剩 4.39:1(低于 WCAG AA 的 4.5)。
这一项只改文字 token,不动背景与品牌色,三档:
| 档位 | 效果 |
|---|---|
| 深墨(默认, 推荐) | 暖青黑 #002b36,比浅色主题的默认墨色深一档;Solarized 上对 layer-1 从 4.39:1 提到 12.2:1 |
| 跟随配色 | 继承配色自己的墨色(Solarized 即上面的青灰),最贴近原设计 |
| 纯黑 | #000000,19.5:1,强光/低视力更清楚,但大段正文会偏硬 |
只作用于浅色:深色配色各自定义 ink,不在这里强行覆盖;按钮主色上的反白字
(--dsw-alias-label-primary-foreground)也不受影响。
字体:中文优先 / 0.5 窄体西文
依据《终端排版哲学:中文优先与 0.5 窄体等宽工程实战》(本机实测数据见下表):
汉字是不可妥协的 1.0 正方。要让「2 个西文字符 = 1 个汉字」严格成立,西文就必须收窄到 0.5; 而以西文为基准的编程字体(Menlo、JetBrains Mono、Fira Code、Maple Mono……)西文宽 0.6~0.67, 汉字容器会被撑到 1.2 —— 汉字要么被横向拉宽 20%(矮胖、字怀塌陷),要么两边留白(中文词句涣散)。
本机 CoreText 实测(unitsPerEm=1000,字形前沿宽度):
| 字族 | 西文 a | 汉字 中 | 比值 | — | → | ★ |
|---|---|---|---|---|---|---|
| Sarasa Mono SC | 0.500 | 1.000 | 2.000 | 1.000 | 1.000 | 1.000 |
| Sarasa Term SC | 0.500 | 1.000 | 2.000 | 0.500 | 0.500 | 0.500 |
| Noto Sans Mono CJK SC | 0.500 | 1.000 | 2.000 | 0.894 | 1.000 | 1.000 |
| Sarasa Gothic / UI SC | 0.562 | 1.000 | 1.78 | 1.000 | 0.954 | 1.045 |
| Maple Mono NF CN | 0.600 | 1.200 | 2.000 | 0.600 | 0.600 | — |
| Maple Mono(非 CN) | 0.600 | 无字形 | — | 0.600 | 0.600 | — |
更纱黑体的架构正是这一哲学的产物:西文用 Iosevka(严格 0.5),汉字用思源黑体(1.0), 基线、x 高度、字重曲线都被逐像素对齐过。Mono 与 Term 的唯一差别是东亚歧义字符 (—……→★■●):Mono 保持全角(适合读 Markdown、中文标点),Term 压成半角(适合密集网格、 跳格最稳)。Maple Mono NF CN 的汉字被拉到 1.2,正是文章里要避开的那一类。
设置页里可选:
| 方案 | 说明 |
|---|---|
| 自动(推荐) | 按可用性依次尝试:更纱黑体 Mono → Term → Noto Mono CJK → Maple Mono;一款都没装就落回官方字体栈 |
| Sarasa Mono SC | 0.5 窄体 + 全角歧义字符 |
| Sarasa Term SC | 0.5 窄体 + 半角歧义字符 |
| Noto Mono CJK | Noto Sans Mono CJK SC,同为 0.5/1.0 |
| Maple Mono | 旧观感(西文 0.6 / 汉字 1.2),保留兼容 |
| 关闭 | 完全不动官方字体栈 |
本机装了哪几款会实时探测并标在页面上(未装的方案置灰,装了字体回来即可,无需重启)。
字重另有「标准 / 半粗」两档,默认落在半粗(推荐)——把正文抬到 600、强调抬到 700,
用字族自带的矢量 SemiBold(文章 §3.2 的甜点位);两种模式都同时关掉 font-synthesis,
即文章 §3.1 的「不用算法级伪粗」——伪粗是光栅化阶段向外描边,会挤占字怀、让笔画黏连。
页面底部还带一块对齐自检块(文章 §5 的校验文本,已按 2:1 校齐列宽): 第 1 行 40 个半角字符必须与第 2 行 20 个汉字等宽,方框必须是矩形,一眼就能看出方案对不对。
选型依据、实测数据、加新字族的步骤见 docs/字体方案-中文优先与0.5窄体.md。
峰谷提醒(官方 API / 官方账号)
输入框下方那行「本轮 ¥x」后面会多一枚「峰 / 谷」徽标,只在最近一次请求真实使用的
provider 是 deepseek-official 或 deepseek-account 时出现:
| 状态 | 时段(北京时间) | 显示 |
|---|---|---|
| 峰 | 周一至周五(不含法定节假日)09:00–12:00、14:00–18:00 | 琥珀色「峰」,提示按峰时价计费 |
| 谷 | 其余时段,含周末与法定节假日全天 | 绿色「谷」,提示空闲半价 |
判定口径按 DeepSeek 官方 2026-08-23 的调价公告与 2026-09-19 的节假日说明:
- 高峰仅落在工作日(周一至周五,不含中国法定节假日)的 9:00–12:00、14:00–18:00;
- 周六、周日全天按空闲价,调休上班的周末也算周末;
- 中国法定节假日全天按空闲价;空闲价为高峰价的一半。
节假日日历每年自动获取
放假安排每年由国务院办公厅发布,插件不需要每年补表:
- host 半按需拉取当年与次年的机读日历(来源:holiday-cn,
按国办通知维护,JSON 里保留原通知链接),解析出
isOffDay的日期并缓存; - 缓存位置
~/.dsh/dsh-uxexo/calendar-<年份>.json;往年日历视为不可变,当年/次年每 7 天刷新, 客户端每 6 小时向 host 同步一次; - 次年安排未发布时(数据源返回空列表)不会误判为「没有节假日」,仍按工作日口径兜底,发布后自动采纳;
- 断网时用内置的 2026 表兜底,不影响徽标与成本统计;
- 所以跨年是自动的:2027 年安排一发布,徽标与成本口径会自己切换,无需改代码。
点击徽标会弹出官方规则浮层:当前状态与原因(周末 / 法定节假日 / 工作日非高峰)、
下一次切换的具体时间与倒计时、官方定义与出处链接。悬停徽标同样能看到倒计时;「发送」与
「选择模型」两个按钮的 title 也会同步带上「官方 API 峰时计费 / 空闲半价」。状态每 30 秒
重算,跨过 12:00 / 18:00 或周末/节假日边界不用等下一次用量轮询。
判据是会话日志里的 request/header.config.provider,不是「余额能查」——余额走
API Key,用户完全可能刚切到 scnet / opencode2dsh,这时不显示峰谷,避免给出错误的计价提示。
设置(即时开关)
打开 设置 → 界面增强,这一页就是本插件的全部开关:
| 开关 | 关掉之后 |
|---|---|
| 启用 dsh-uxexo 界面增强 | 总开关。整层增强立刻撤下、回到官方外观;各分项的选择保留,再打开时按原样回来 |
| 配色主题 | 下拉里选「Official · 官方配色」即回到官方主题;默认 Solarized;25 套主题与命名见上节 |
| 新会话按钮弱化 | 默认关闭(「新会话」跟随主题强调色);打开后左上角「新会话」只比侧栏底色略深一点,回到克制的弱化观感 |
| 字体方案 / 字重 | 回官方字体栈与官方字重;方案选「关闭」等价于只关字体层;默认半粗(推荐) |
| 文字墨色 | 三档单选:深墨(默认, 推荐)、跟随配色、纯黑;只影响浅色文字,不动背景与品牌色 |
| 紧凑布局微调 | 消息列宽、间距、输入卡片对齐都回官方几何 |
| 折叠胶囊 | 思考/工具调用恢复成官方逐条展开的样子,注入的胶囊节点同时被收回 |
| 账户余额与用量 | 输入框下方那行余额、本轮成本、峰谷徽标与图表消失,也不再轮询余额接口 |
全部即时生效,不需要重启:开关写在 <html> 的 data-dsh-ux-* 属性上(CSS 闸门,改属性立刻改变行为),
同时存进一枚 cookie,让宿主半在首帧渲染前就把状态恢复好(否则会先按官方配色画一帧再跳)。
唯一需要重启的情况是插件本体更新:客户端半随页面刷新/热重载换新,宿主半(几个 /enh/* 接口、
首帧注入脚本)由 dsh 进程在启动时加载,换不了。设置页顶部会比对两半的构建号,一旦对不上就直接写明
「重启 DeepSeek Harness 后生效」,并提供「重新检测」。这也是 GET /enh/ping 的用途。
安装
前置:已按 DSH 的 profile 机制运行(dsh web)。
dsh plugin --profile web add github:jiangnanquan/dsh-uxexo#main
本包声明了 dsh.bundle.patch 与 dsh.client,dsh plugin add 会自动把它加入 profile 的 bundles,
重启 dsh 后即生效,无需手改任何配置。重复执行该命令是安全的(幂等);升级用
dsh plugin --profile web update dsh-uxexo。
官方桌面版不使用这条命令:
desktopprofile 由 Electron 应用独占,dsh plugin --profile desktop …会被直接拒绝。桌面版装法见 INSTALL.md。
交给你的 AI
不想手动敲命令?把下面这段话粘贴给任意 AI agent(Claude Code、dsh、Gemini CLI……),让它读 INSTALL.md 并完成安装与自检:
请按照 https://github.com/jiangnanquan/dsh-uxexo/blob/main/INSTALL.md 里的步骤,在我的机器上安装并验证 dsh-uxexo 插件(profile 用 web),然后运行文档里的健康检查并告诉我结果。如果任何一步失败,按文档的回滚步骤恢复原状并说明原因。
依赖与前提
- 字体:推荐安装更纱黑体(Sarasa Gothic 的
Sarasa-SuperTTC,或Sarasa Term/Mono SC单独字重)—— 它是唯一同时满足「西文 0.5 窄体 + 汉字 1.0 正方」且中西文字重曲线对齐过的免费字族。 没有更纱时可用 Noto Sans Mono CJK SC(同为 0.5/1.0,但只有 Regular/Bold), 或继续用 Maple Mono(西文 0.6、汉字 1.2)。 一款都没装时字体层自动落回官方字体栈,不影响其余功能。 - 余额 / 本轮成本 / 用量图表 / 峰谷提醒:调用 DeepSeek 官方接口,需要当前 DSH 已配置
DEEPSEEK_API_KEY凭据;未配置时这些信息显示为查询失败/不可用,不影响其余功能。 - 计价表按官方峰谷价硬编码在
lib/index.js的pricingFor/PRICE_TABLES:高峰仅工作日 9:00–12:00、14:00–18:00,周末与法定节假日全天空闲价(高峰价一半);历史成本按 2026-08-17 (启用峰谷)、2026-08-23(周末全谷)、2026-09-10 12:00(Flash 调价)三个时间点分段。 - 中国法定节假日不再硬编码年份:
lib/calendar.js每年自动拉取、解析并缓存放假安排,跨年无需 手工补录;lib/index.js与lib/client.js里各保留一份 2026 内置表,只作离线/首启动兜底 (冒烟测试核对两份兜底一致)。官方调价仍属事件驱动,需要人工更新价格表。
卸载
dsh plugin --profile web remove dsh-uxexo
License
MIT
Comments
Loading…
Similar plugins
✦
No screenshots
by mux9056-bot
DeepSeek Harness 主题插件 · 30 款即插即用主题(零依赖 DSH 客户端插件 + 独立 CSS)/ 30-theme pack for DeepSeek Harness web UI
★ 3
↓ 250/wk
Apache-2.0
CSS
Aug 18, 2026
dsh plugin --profile web add dsh-themeby huiliyi37
官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。
★ 289
↓ 274/wk
Apache-2.0
TypeScript
Sep 30, 2026
dsh plugin --profile terminal add @huiliyi37/dsh-tianshu-tuiby anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 32.2k
↓ 98/wk
MIT
TypeScript
Oct 21, 2026
dsh plugin --profile web add dsh-plugin-desktopby ahikl
DeepSeek Harness 桌面端插件:基于 Electron 的 dsh Web UI 桌面外壳。| An Electron desktop shell for the DeepSeek Harness Web UI, with a system tray and a custom title bar.
★ 0
↓ 199/wk
MIT
TypeScript
Aug 16, 2026
dsh plugin --profile web add @ahikl/dsh-desktopby jiangnanquan
DSH web UI 增强插件 + 无边框 Electron 桌面壳
★ 8
MIT
JavaScript
Aug 18, 2026
dsh plugin --profile web add dsh-enhanceby ChisaAlter
DSH桌面端,支持主题和背景图等多种个性化配置。Electron desktop shell for DeepSeek Harness web UI
★ 139
↓ 293.2k/wk
MIT
JavaScript
Aug 25, 2026
dsh plugin --profile web add @deepseek-ai/dsh-base