前言¶
用 DeepSeek Harness(DSH)跑智能体时,大部分时间泡在 web 配置里:侧边栏切会话、中间看对话与工具轨迹、窄屏还要开合抽屉。上游 UI 有几个默认行为会让浏览成本变高——会话列表每组只露 5 条、长工具调用占满一屏、移动端侧栏可能被遮罩压在下面。社区插件 dsh-declutter-ui 针对这三点做纯前端 DOM 调整,不碰服务端、不联网、不上报。下面按「是什么 → 改什么 → 怎么装」说明。
这是什么¶
dsh-declutter-ui 由维护者 lg320531124 发布,归类为 客户端 插件,当前 npm 包版本 1.0.0(MIT)。它在页面加载后只修改你已打开的 Harness 网页 DOM:lib/index.js 导出空的 apply() 供 Loader 挂载,实际逻辑在 lib/client.js,经 package.json 的 dsh.client 注入。
一句话:不改变模型上下文与 token 消耗,只改善会话列表展开、工具调用折叠与移动端侧栏层级。
核心功能¶
1. 会话列表不再卡在「只显示 5 条」¶
工作区侧栏按组渲染会话时,上游用常量 SESSION_WATERMARK_BASE = 5 控制默认可见行数,其余会话挂在「展开其余 N 个会话」按钮后面;被折叠的行 不会挂载到 DOM,因而无法滚动看到,也没有设置项可调这个数量。
插件按安全规则自动点击展开:仅在按钮文案仍以「展开其余」开头且 aria-expanded 为 "false" 时点击。不能只做到「点到达消失」——全部展开后同一按钮会变成「收起」, naive 循环会反复展开/收起。资料中的示例轨迹为:两次「展开其余 …」后第三次点「收起」会再折叠,故必须遵守上述条件。
2. 长工具调用收拢为一个开关¶
智能体一轮可能打出上百条工具行,每条约 30px 单行摘要,阅读时像一整面「执行了命令 / 读取 …」墙。
插件在视图标签条(对话 轨迹 上下文 … ⋯)内 inline 注入「显示工具调用 N / 折叠工具调用 N」药丸按钮,一键隐藏整段工具流;折叠状态记在 localStorage。仅为显示层,不影响发给模型的内容,也不省 token。
3. 移动端侧栏抽屉提到遮罩之上¶
视口宽度小于 1024px 时侧栏收成图标轨,☰ 会打开 overlay 抽屉。在 README 记载的测试构建上,抽屉位移动画会发生(sidebarCol 从 x: -280 到 x: 0),但层叠仍为 z-index: 0,而背景遮罩为 z-index: 70 且带 backdrop-filter: blur(28px),看上去像灰蒙一片、侧栏「坏了」。框架本应对抽屉提升到 z-index: 71,但部分构建未生效;插件注入缺失的 CSS 规则。
实现上的补充(来自 README)¶
- 自恢复挂载:React 重渲染可能冲掉注入节点;插件在 DOM 变更后节流约 400ms 复检,必要时重新挂载;标签条整块消失时退化为右上角固定浮层。
- 清理:监听、
MutationObserver、<style>经ctx.effect(...)注册,插件重载时可卸载。 - 选择器:对 CSS Module 哈希前缀用
[class*="sidebarCol"]等后缀匹配,前缀随构建变化不影响匹配。
兼容性方面,维护者解包上游 UI 的 npm 包,核对 flowItem、viewTabs、sidebarCol、data-disclosure-row、overflow: 等 token 在 0.2.0-rc.2、0.2.1-rc.5、0.2.2-rc.1 中仍存在;手动测试注明为 DSH 0.2.2-rc.1、web profile、Windows 11、Chromium。若选择器失效,对应功能会 静默不生效(无控制台报错、页面不崩)。
安装与启用¶
先为 web profile 安装插件(命令来自官方 README):
dsh plugin --profile web add dsh-declutter-ui
再把包名写入该 profile 的 bundle 列表,否则 patch 层不会挂上。编辑 ~/.dsh/profiles/<profile>/package.json:
{
"dsh": {
"profile": {
"bundles": [
"…",
"dsh-declutter-ui"
]
}
}
}
重启一次 dsh web(bundle 列表在启动时读取;客户端脚本侧刷新页面可热更新)。卸载时执行 dsh plugin --profile web remove dsh-declutter-ui,并从 dsh.profile.bundles 移除同名项后同样重启。
典型用法¶
安装并加入 bundles、重启后 无需额外配置。打开 Harness 网页即可:
- 侧栏会话组若存在「展开其余 N 个会话」,插件会在满足条件时自动点满展开(你也可照常手动点「收起」)。
- 在单轮对话的视图标签条查找「显示工具调用 N / 折叠工具调用 N」,点击切换整段工具行的显示;状态在浏览器
localStorage中保留。 - 手机或窄浏览器窗口点 ☰ 打开侧栏,抽屉应显示在模糊遮罩之上而非被挡住。
适用场景与注意¶
适合:长期用 DSH web 调 agent、会话很多、或单轮工具调用特别长的开发者;需要移动端可用的侧栏导航时。
注意:
- 插件与当前 dsh 进程及浏览器页面 同源运行,安装前建议在 GitHub 仓库 查看源码与 MIT 许可证,确认符合你的审计要求。
- DSH 生态强调「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。
- 升级 DSH 后若某项「突然没效果」,优先怀疑 DOM 契约变化导致的静默降级,而非插件抛错。
结尾¶
dsh-declutter-ui 用一个小体积客户端包,把会话列表默认折叠、工具墙和移动侧栏层级三类干扰收成可预期的浏览体验。需要安装说明与兼容表时,以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/lg320531124/dsh-declutter-ui
- GitHub:https://github.com/lg320531124/dsh-declutter-ui