dsh-chat-ux
已验证@alm-allen/dsh-chat-ux · v0.2.6 · MIT · Web 界面
Chat-area UX plugin for the DeepSeek Harness (dsh) web GUI.
安装
dsh plugin add @alm-allen/dsh-chat-ux 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
作者
说明文档
dsh-chat-ux
English | 中文
面向 DeepSeek Harness(dsh) Web GUI 聊天区的 UX 优化插件。
装好之后,聊天区里模型吐字不再是整段闪现、思考行不会一直杵在那儿、过程组该开的时候开该收的时候收——而读者自己滚到哪里,都不会被动画抢回去。
它做了什么
- token 淡入:模型的输出按 token 淡入,思考与正文都覆盖。开销只落在正在流式的那条消息里,不叠到别的插件的样式重算与 DOM 操作上;主线程已经忙不过来时它自己让路。
- 思考行自动开合:思考时自动展开,这段思考结束就收起;读者自己动过手,就不再打扰。
- 过程组自动开合:工具调用开始自动展开,这一段跑完再收起,展开收起都走一道卷帘门过渡。展开体里有好几张卡片的行(
run_code的代码加输出)也是一整扇门,不会一张一张地开合。两者共用一个「自动开合」开关,可在插件页关掉。 - 增强跟随:思考结束、工具调用出现这些"内容要跳"的时刻,把贴底的读者交还给 dsh 的跟随;读者自己滚动离开底部时一概不插手。
- 组体跟随:标准/简洁档里被限高的过程组,思考与工具输出照样不掉队,组体只滚纵向。
- 文件变更行:
run_code里 write / edit 的改动,diff 行直接显示在聊天区;直接调用时,路径、输入大小与+n -m在参数还在流进来时就显示,两个数随内容往上长,变了的那一位会像读数那样在原地弹到新值(这一段标着 beta、默认关,可在插件页打开)。 - 光标动效:输入框的光标会滑过去,打字、方向键、点击都算,80 ms。主输入框、提问卡片的作答框、排队消息的编辑框(给跑着的子智能体追加消息时用的那个)都算。
- 聊天气泡动效(默认开):提交那一下输入框原样浮起来一份——工具栏收进两边的角里淡掉,外形收成气泡,字跟着形状重新排版——一路飞进消息列,整段固定 300 ms。位移与形状同一条曲线、都在合成器上(同一个
FLIGHT_MS的时间轴),dsh 发消息那一刻主线程再忙,两条也一起走,右边缘不越界。 - 工作步骤默认标准:网页端把 dsh 的「工作步骤展示」默认补成「标准」(dsh 自己的网页端默认是「详细」)。你之后在 设置 → 通用 → 工作步骤展示 里改过,就以你的选择为准,插件不再动它。
- 缓存命中率:输入框下方那枚胶囊里的读数恒取一位小数,颜色按 90%~99% 六档走——90 以下是红、99 以上是深绿,中间由红经橙黄、黄、黄绿走到浅绿;「缓存命中」这几个字与读数同色(详细档里那个 token 总量与中间那个分隔点不算在内)。读数一变,变了的那几位会原地弹到新数字:从下方一点的位置落回来,旧的朝反方向淡出(500 ms,低位起手更晚);插件页上可以关掉。
- 上下文占用改成饼:原来那圈环换成一枚 16px 的实心饼,颜色按 20%~40% 六档走(20 以下绿、40 以上红),读数与饼同色。已占用那一角沿一条折点在圆心的折线切开,并沿角平分线端出去一点,缺口与那一块之间那道缝处处 1.2px 宽;插件页上可以整枚关掉,回到 dsh 原来的环。旁边那串百分比也会跟着弹。
- 输入框毛玻璃(默认开):输入框自带一条蓝调渐变(两端各一片极淡的色、中间完全透明,端色淡到只是隐约一层),底只让出一成不到,再叠一层轻模糊与顶边亮边、内侧微光、底部内阴影三笔质感;右下角那枚发送按钮(跑起来时是停止)与左下角那枚加号也跟着换成同一套材质:发送是玻璃上的一片蓝,加号是同一块玻璃上的一片灰。下面那排统计与上面那几张卡不受影响,上方那条从画布淡出的过渡带照旧。可在插件页关掉。
- 轨迹视图收掉输入区:切到「轨迹」那一页时,dsh 会把输入框当浮层压在记录表上;插件把整条输入区收掉,记录表铺到底,切回「对话」原样回来。
安装
在 dsh Web GUI 里打开插件页 →添加插件→ 输入包名:
@alm-allen/dsh-chat-ux
或者直接走命令行(等价于在 profile 目录里执行 pnpm):
dsh plugin --profile web add @alm-allen/dsh-chat-ux
装完重启 dsh、刷新页面即可。卸载用插件页的开关,或:
dsh plugin --profile web remove @alm-allen/dsh-chat-ux
从 GitHub 仓库安装
也可以直接从仓库装 —— 仓库里带了构建产物,所以不需要任何构建授权:
dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux
想锁死到某个 commit(后续推送就改不了你装到的东西):
dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux#<commit-sha>
配置
插件装好后,在插件页的这一行上可以直接改:
| 项 | 默认 | 说明 |
|---|---|---|
| 增强跟随 | 开 | 关掉后,思考结束与工具调用出现时不再把读者交还给 dsh 的跟随。 |
| 组体跟随 | 随「增强跟随」 | 不是单独一项:卡片上只有「增强跟随」那个开关,它同时控制限高过程组里思考与工具输出是否掉队。 |
| 自动开合 | 开 | 关掉后,思考行与过程组都不再自己展开收起,读者自己点开收起照常。 |
| token 淡入 | 开 | 关掉后,新出现的文字直接显示。与别的插件一起用时明显卡顿,可以关这一项。 |
| 光标动效 | 无论何时 | 三档:关/移动时/无论何时。 |
| 聊天气泡动效 | 开 | 关掉后,提交时不再有那段起飞,消息照常出现。 |
| 命中率转轮 | 开 | 关掉后,命中率变化时直接换成新数字。 |
| 上下文占用饼 | 开 | 关掉后回到 dsh 原来的环。 |
| 输入框毛玻璃 | 开 | 关掉后,输入区、发送按钮与那枚加号都回到 dsh 原来的样子,背后不再模糊。 |
| 实时改动行数 | 关(beta) | 打开后,直接调用 write / edit 时行尾那两个 +n -m 在内容流进来时就长,变了的那一位会像读数那样在原地弹。 |
「工作步骤展示」不在插件卡片上:它在 dsh 自己的 设置 → 通用 里,插件只在你没选过时把它补成「标准」。
兼容性
- 在 dsh
0.2.1-alpha.2(网页端)与0.2.1-alpha.1(桌面端)上开发与验证;0.2.0-rc.2及更早的老版本照旧可用(2026-10 那两轮适配曾让两处在老版本上静默失效,已按形态判据修掉)。 - 老版本上只有一处差别对读者可见:「缓存命中」那一枚在
0.2.0-rc.2及更早不生效——那时 dsh 只有一枚stats胶囊,插件按usage注册上去会变成第二枚,所以那边干脆不画,读者看到的是 dsh 自己那一枚。 - Node
^22.19.0 || >=24.0.0。
关于本仓库
这里是插件的源码与发行说明。构建脚本、内部设计文档不在本仓库内,因此 clone 之后不能直接 npm run build;需要用插件请直接安装 npm 上的包。
每个版本的更新记录在 CHANGELOG.md —— 打标签发布时,Release 报告就是从它里面抽的。