Harness UI Enhancer

美化你装了一堆插件的 DeepSeek Harness。

规范化官方界面 · 协调每个插件 · 全部可逆 · 零模型开销

快速开始 · 能力 · 原理 · 路线图 · License

npm version platform license client only

--- > **一句话:** 你装了一堆 DSH 插件,界面却风格割裂、按钮东一个西一个?Harness UI Enhancer 用「**CSS 覆盖 + 运行时 DOM 协调**」把它们拉回官方设计语言,**不破坏任何插件源码、卸载即还原、零模型开销**。 Harness UI Enhancer 是一个**纯浏览器端(client-only)** 的 DSH bundle 插件。它不新增模型工具、不改写会话日志,只通过官方 `settings.section` / `settings.general.item` 槽位与 `--dsw-*` 语义令牌体系调整界面。装上它,任何插件在你的界面里都会"更懂规矩"。 --- ## ✨ 核心能力 | 能力 | 说明 | | --- | --- | | 🎨 **官方 UI 规范化** | 修复官方界面中未完善、自相矛盾的设计(顶部栏单行化、设置页头、对话/轨迹选择器…) | | ♻️ **插件视觉协调器** | 让 better-sidebar、widgets、以及任何第三方设置插件**统一到官方视觉语言** | | 🧹 **设置页自动规范器** ⭐ | 自动扫描任意插件的 `settings.section` 表头:**缺标题补标题、多余图标删除、标题/描述间距与格式统一** | | 🔌 **MCP 服务器管理** | 在侧边栏添加 MCP 配置入口,支持添加/编辑/删除/测试连接 | | ⏰ **自动化任务调度** | 定时任务管理,支持周期/间隔/单次三种调度模式,提示词输入框复用聊天输入框样式 | | 🌙 **深浅主题自适应** | 全部走 `--dsw-*` 语义令牌,明暗主题自动跟随,不脱节 | | 🧩 **可逆 / 无侵入** | 覆盖式实现,卸载后浏览器完全恢复默认,绝不破坏对方插件源码 | ### MCP 服务器管理 点击左下角 **MCP** 按钮打开配置面板: - **添加服务器**:输入服务器名称和启动命令(stdio)或 URL(streamable-http) - **启用/禁用**:切换服务器连接状态 - **测试连接**:一键验证服务器配置是否正确 - **删除**:移除不需要的服务器 配置保存在 `~/.dsh/mcp.json`,通过 `@deepseek-ai/dsh-mcp-client` 实现真实连接。 ### 自动化任务调度 点击左下角 **自动化** 按钮打开任务管理面板: - **周期执行**:每天/每周X/每月X日 + 指定时间 - **间隔执行**:每 N 分钟自动执行 - **单次执行**:在指定的未来时间执行一次 创建任务时,提示词输入框复用聊天输入框样式(圆角 24px),用户一眼就能理解"这就是给 Agent 发消息"。 **工作原理**:任务触发时,通过 ACP (Agent Client Protocol) 在指定工作区创建新会话并发送提示词,与人类在输入框发送消息完全相同。 ### 效果预览 **整体效果:** 顶部栏单行化 + 左下角 MCP 与自动化按钮 ![整体效果](docs/screenshot-overview.png) **better-sidebar 适配:** 右侧面板样式统一、toggle 按钮胶囊化 ![better-sidebar 适配](docs/screenshot-better-sidebar.png) **harness-widgets 适配:** 右侧统计栏与对话区域协调 ![harness-widgets 适配](docs/screenshot-widgets.png) ### 它具体帮你做什么 - **顶部栏单行化**:对话/轨迹选择器移入标题行、做成互斥胶囊,header 收成单行,视觉重心更稳。 - **少分隔线、多层级**:用背景层级/圆角/阴影/留白自然分区,替代生硬的 1px 分隔线。 - **按钮胶囊家族**:Session log、组件胶囊、better-sidebar toggle、对话/轨迹 tabs——统一为同一族 32px 胶囊,激活态品牌色填充。 - **右侧栏贴边圆角矩形**:better-sidebar 面板从"整页推挤"改为"覆盖式 + header 不动",面板随 widgets rail 对齐。 - **弹窗高斯模糊**:MCP/自动化弹窗背景添加 `backdrop-filter: blur()` 效果,与官方设置弹窗一致。 - **平滑动画**:弹窗打开时有缩放 + 淡入效果,使用官方缓动函数。 - **设置页自动规范器**:见下一节。 ## 🧹 设置页自动规范器 这是本插件的核心差异化卖点:**任何第三方插件往 `settings.section` 里加页面时,只要没有严格按官方规范设计,Harness UI Enhancer 会自动把它拉回规范。** | 它自动检查并修正 | 做法 | | --- | --- | | **缺页面标题** | 若页面只有描述没有 `

`,自动注入一个 18/600 的标题(取当前设置导航项名,取不到则由已知映射兜底) | | **标题旁多余图标** | 移除标题行里那个 logo/图标,让标题是干净的纯文字 | | **标题/描述贴太紧** | 统一为官方 4px 间距 + 描述下方 hairline 收尾 | | **字号/格式不统一** | 标题统一 18/600、描述统一 13/20 + `border-bottom` hairline | > 详情与给插件作者的规范见 **[`docs/settings-section-style.md`](docs/settings-section-style.md)**(官方设置页表头设计规范,欢迎插件作者对标)。 **不越界**:只统一"表头"这一层的视觉;不重排你的内容区、不删功能性图标(只删标题行 logo)、不伪造描述文案。 --- ## 🔧 工作原理 - **零模型开销**:host(node)半是 no-op,全部改动发生在浏览器半; - **官方设计令牌**:所有样式走 `--dsw-*` 语义令牌(背景、边框、阴影、品牌色),因此自动跟随 DSH 明暗主题,不会出现"插件样式与主题脱节"; - **两条注入通道**: 1. 静态规则(`enhancer.module.css`)读取 `` 上的 `--enhancer-*` 自定义属性; 2. 动态 `