dsh-chat-ux
Verified@alm-allen/dsh-chat-ux · v0.2.5 · MIT · Web UI
Chat-area UX plugin for the DeepSeek Harness (dsh) web GUI.
Install
dsh plugin add @alm-allen/dsh-chat-ux Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-chat-ux
English | 中文
面向 DeepSeek Harness(dsh) Web GUI 聊天区的 UX 优化插件。
装好之后,聊天区里模型吐字不再是整段闪现、思考行不会一直杵在那儿、过程组该开的时候开该收的时候收——而读者自己滚到哪里,都不会被动画抢回去。
它做了什么
- token 淡入:模型的输出按 token 淡入,思考与正文都覆盖。开销只落在正在流式的那条消息里,不叠到别的插件的样式重算与 DOM 操作上;主线程已经忙不过来时它自己让路。
- 思考行自动开合:思考时自动展开,这段思考结束就收起;读者自己动过手,就不再打扰。
- 过程组自动开合:工具调用开始自动展开,这一段跑完再收起,展开收起都走一道卷帘门过渡。展开体里有好几张卡片的行(
run_code的代码加输出)也是一整扇门,不会一张一张地开合。两者共用一个「自动开合」开关,可在插件页关掉。 - 增强跟随:思考结束、工具调用出现这些"内容要跳"的时刻,把贴底的读者交还给 dsh 的跟随;读者自己滚动离开底部时一概不插手。
- 组体跟随:标准/简洁档里被限高的过程组,思考与工具输出照样不掉队,组体只滚纵向。
- 文件变更行:
run_code里 write / edit 的改动,diff 行直接显示在聊天区;直接调用时,路径、输入大小与+n -m在参数还在流进来时就显示,+n随内容增长(这一段标着 beta、默认关,可在插件页打开)。 - 自带字体:正文 HarmonyOS Sans SC、等宽 Maple Mono NF CN,随插件一起发出,装插件的人不必自己装字体,两端看到的也是同一套字。
- 光标动效:输入框的光标会滑过去,打字、方向键、点击都算,80 ms。主输入框、提问卡片的作答框、排队消息的编辑框(给跑着的子智能体追加消息时用的那个)都算。
- 聊天气泡动效(默认开):提交那一下输入框原样浮起来一份——工具栏收进两边的角里淡掉,外形收成气泡,字跟着形状重新排版——一路飞进消息列,整段固定 300 ms。位移与形状同一条曲线、都在合成器上(同一个
FLIGHT_MS的时间轴),dsh 发消息那一刻主线程再忙,两条也一起走,右边缘不越界。 - 工作步骤默认标准:网页端把 dsh 的「工作步骤展示」默认补成「标准」(dsh 自己的网页端默认是「详细」)。你之后在 设置 → 通用 → 工作步骤展示 里改过,就以你的选择为准,插件不再动它。
- 缓存命中率:输入框下方那枚胶囊里的读数恒取一位小数,颜色按 90%~99% 六档走——90 以下是红、99 以上是深绿,中间由红经橙黄、黄、黄绿走到浅绿。读数一变,变了的那几位会像老虎机那样翻到新数字(220 ms,低位起手更晚);插件页上可以关掉。
- 上下文占用改成饼:原来那圈环换成一枚 20px 的实心饼,颜色按 20%~40% 六档走(20 以下绿、40 以上红),读数与饼同色。已占用那一角沿一条折点在圆心的折线切开:默认「切块推开」——那一块沿角平分线端出去一点,缺口与那一块之间那道缝处处 1.2px 宽;插件页上可以切成「只留切口」,两块都留在原位,把切口补上就是一整个圆。旁边那串百分比也会跟着翻。
- 输入框毛玻璃(默认开):输入框自带一条蓝调渐变(两端淡蓝、中间沉下去),底只让出一成不到,再叠一层轻模糊与顶边亮边、内侧微光、底部内阴影三笔质感;右下角那枚发送按钮(跑起来时是停止)也跟着换成同一套材质。下面那排统计与上面那几张卡不受影响,上方那条从画布淡出的过渡带照旧。可在插件页关掉。
安装
在 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 自己的 设置 → 通用 里,插件只在你没选过时把它补成「标准」。
兼容性
- 在 dsh 0.2.1-alpha.1 上开发与验证。
- Node
^22.19.0 || >=24.0.0。
关于本仓库
这里是插件的源码与发行说明。构建脚本、内部设计文档不在本仓库内,因此 clone 之后不能直接 npm run build;需要用插件请直接安装 npm 上的包。
每个版本的更新记录在 CHANGELOG.md —— 打标签发布时,Release 报告就是从它里面抽的。