# @alm-allen/dsh-chat-ux 中文文档

规范地址：https://npmcn.com/package/%40alm-allen/dsh-chat-ux/

版本：0\.3\.2
npm 元数据更新时间：2026-11-04T16:19:15.934Z
中文译文更新时间：2026-11-06T20:16:36.434Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40alm-allen/dsh-chat-ux
原文对照：https://npmcn.com/package/%40alm-allen/dsh-chat-ux/?lang=original
项目主页：https://github.com/Alm-Allen/dsh-chat-ux#readme
源码仓库：https://github.com/Alm-Allen/dsh-chat-ux

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：598 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.19\.0 \|\| \>=24\.0\.0
- 运行依赖：1 个
- peer 依赖：react ^18\.2\.0，@deepseek-ai/cordis ^4\.0\.4
- 首次发布：2026-09-25T11:44:02.875Z
- 最新版本发布：2026-11-04T16:19:15.723Z
- 近 30 天下载量：2388（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

Depseek Harness (dsh) Web GUI 的聊天区 UX插件.

## 安装

```sh
npm install @alm-allen/dsh-chat-ux
```

也可以使用：`pnpm add @alm-allen/dsh-chat-ux`、`yarn add @alm-allen/dsh-chat-ux`、`bun add @alm-allen/dsh-chat-ux`

## README

# dsh-chat-ux

[English](https://npmcn.com/package/%40alm-allen/dsh-chat-ux/README.en.md) | 中文

面向 [DeepSeek Harness（dsh）](https://github.com/deepseek-ai/deepseek-harness) Web GUI 聊天区的 UX 优化插件。

装好之后，整页铺在一张纸上、思考行不会一直杵在那儿、过程组该开的时候开该收的时候收、输入框与读数区都换上这个插件的那一套——而读者自己滚到哪里，都不会被动画抢回去。

## 它做了什么

-   **纸感**（默认开）：整页就是一张纸。页面底色换成这张纸的调子，纸面上有织纹、正中一道圆形光斑；输入框、气泡与菜单读起来像纸面上压出来的一层——气泡的底跟着这张纸重算，与输入框那块玻璃同一个调子，不再是浮在纸上的一块白卡片——正文与代码换成衬线体与打字机体。纸只有一种（葱皮），深浅两档跟着 dsh 的主题切换：亮档是原来那张葱皮，暗档是它的暗版，一键换过去，不必重新挑。关掉就整块回到 dsh 原来的样子，字也一起换回去；纸感底下的「纸面字体」可以单独关，只留纸、不换字。窗口材质平台（桌面版把侧栏做成玻璃的那种）上，侧栏还会铺一层只给纹理、不给底色的纸纹，玻璃照样透得出来。可在插件页关掉。
-   **思考行自动开合**：思考时自动展开，这段思考结束就收起；读者自己动过手，就不再打扰。
-   **过程组自动开合**：工具调用开始自动展开，这一段跑完再收起，展开收起都走一道卷帘门过渡。展开体里有好几张卡片的行（`run_code` 的代码加输出）也是一整扇门，不会一张一张地开合。两者共用一个「自动开合」开关，可在插件页关掉。标准／简洁档里被限高的过程组只滚纵向，这一条常驻、不跟开关走。读者把 dsh 的「收起时机」选成「下次发送时收起」时，这一段结束的那一下让给官方；dsh 的折叠动效正在驱动某一行时，也让路。
-   **文件变更行**：`run_code` 里 write / edit 的改动，diff 行直接显示在聊天区；直接调用时，路径、输入大小与 `+n -m` 在参数还在流进来时就显示，两个数随内容往上长（内容一到就显示，不必等另一个字段，也不必等路径——写入的参数里 `file_path` 排在最后一个字符）；行尾那两个数按节拍一跳一跳地弹（让每一轮动画走完整，写入与编辑同款），落定那一下才是实时跟随（默认开着，可在插件页关掉）。
-   **光标动效**：输入框的光标会滑过去，打字、方向键、点击都算，80 ms。主输入框、提问卡片的作答框、排队消息的编辑框（给跑着的子智能体追加消息时用的那个）都算。
-   **发送气泡形变**（默认开）：发出之后，一块与输入框同形同色的方块从输入框上沿升起，里面就是刚敲的那句话，一边收窄一边跟着重新折行、换成落点那条气泡的颜色，落到它的位置，整段 350 ms。输入卡片自始至终都留着——方块就是从它上面升起来的，不是把输入框抹掉再画一个。可在插件页关掉。
-   **工作步骤默认标准**：网页端把 dsh 的「工作步骤展示」默认补成「标准」（dsh 自己的网页端默认是「详细」）。你之后在 设置 → **通用** → 工作步骤展示 里改过，就以你的选择为准，插件不再动它。
-   **缓存命中率**：输入框下方那枚胶囊里的读数恒取一位小数，颜色按 90%~99% 六档走——90 以下是红、99 以上是深绿，中间由红经橙黄、黄、黄绿走到浅绿；「缓存命中」这几个字与读数同色（详细档里那个 token 总量与中间那个分隔点不算在内）。读数一变，变了的那几位会原地弹到新数字：从下方一点的位置落回来，旧的朝反方向淡出（500 ms，低位起手更晚）；插件页上可以关掉。
-   **上下文占用改成饼**：原来那圈环换成一枚 16px 的实心饼，颜色按 20%~40% 六档走（20 以下绿、40 以上红），读数与饼同色。已占用那一角沿一条折点在圆心的折线切开，并沿角平分线端出去一点，缺口与那一块之间那道缝处处 1.2px 宽；插件页上可以整枚关掉，回到 dsh 原来的环。旁边那串百分比也会跟着弹。
-   **输入框毛玻璃**（默认开）：输入框自带一条蓝调渐变（两端各一片极淡的色、中间完全透明，端色淡到只是隐约一层），底只让出一成不到，再叠一层轻模糊与顶边亮边、内侧微光、底部内阴影三笔质感；右下角那枚发送按钮（跑起来时是停止）与左下角那枚加号也跟着换成同一套材质：发送是玻璃上的一片蓝，加号是同一块玻璃上的一片灰。下面那排统计与上面那几张卡不受影响，上方那条从画布淡出的过渡带照旧。可在插件页关掉。
-   **输入框里的滚动条**：不显示。主输入框、提问卡片的作答框、排队消息的编辑框都不再冒出那两根条；滚轮与键盘照旧能滚，内容超过十四行也照样滚。常驻，没有开关。
-   **窗口通知**：两条通道，都可以关。**停下来等你动手**时弹一条——提问、计划确认、工具审批三种都算，正文就是它刚写的那段内容（压成一行，超过 140 字截断），不是一句固定提示。**任务跑完**也弹一条——会话名、耗时、这一轮回复的开头，完成 / 出错 / 中断分三种标题，几个同时跑完时排队出现、相邻两条隔 3 秒；这一轮结束时若还有提问在等你，就不再补这一条。三档：关 / 未聚焦时 / 无论何时，默认无论何时。可在插件页切换。
-   **轨迹视图收掉输入区**：切到「轨迹」那一页时，dsh 会把输入框当浮层压在记录表上；插件把整条输入区收掉，记录表铺到底，切回「对话」原样回来。

## 安装

在 dsh Web GUI 里打开**插件**页 →**添加插件**→ 输入包名：

```
@alm-allen/dsh-chat-ux
```

或者直接走命令行（等价于在 profile 目录里执行 pnpm）：

```sh
dsh plugin --profile web add @alm-allen/dsh-chat-ux
```

装完重启 dsh、刷新页面即可。卸载用插件页的开关，或：

```sh
dsh plugin --profile web remove @alm-allen/dsh-chat-ux
```

### 从 GitHub 仓库安装

也可以直接从仓库装 —— 仓库里带了构建产物，所以不需要任何构建授权：

```sh
dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux
```

想锁死到某个 commit（后续推送就改不了你装到的东西）：

```sh
dsh plugin --profile web add github:Alm-Allen/dsh-chat-ux#<commit-sha>
```

## 配置

插件装好后，在**插件**页的这一行上可以直接改：

| 项 | 默认 | 说明 |
| --- | --- | --- |
| 纸感 | 开 | 关掉后整页回到 dsh 原来的样子，正文与代码的字也一起换回去。 |
| 纸面字体 | 开 | 纸感底下的子开关。关掉后只留纸：页面底色与墨照换，正文与代码回到 dsh 自己的字体；纸感关掉时它不起作用。 |
| 自动开合 | 开 | 关掉后，思考行与过程组都不再自己展开收起，读者自己点开收起照常。 |
| 工具行跟随 | 开 | 工具调用与新的思考行出现时补一次底，新内容不会落到看不见的地方；你自己往上翻时它不动。 |
| 光标动效 | 无论何时 | 三档：关／移动时／无论何时。 |
| 发送气泡形变 | 开 | 关掉后，发出那一条直接出现在落点，没有那段飞行（方块里也不显示文字）。 |
| 命中率转轮 | 开 | 关掉后，命中率变化时直接换成新数字。 |
| 上下文占用饼 | 开 | 关掉后回到 dsh 原来的环。 |
| 输入框毛玻璃 | 开 | 关掉后，输入区、发送按钮与那枚加号都回到 dsh 原来的样子，背后不再模糊。 |
| 实时改动行数 | 开 | 打开后，直接调用 write / edit 时行尾那两个 `+n -m` 在内容流进来时就长（两个字段各自到、各自开始数，不等另一半）；流式期间那两个数按节拍换数、让数字轮每次都弹完整，落定那一下才是实时跟随。 |
| 窗口通知 | 无论何时 | 三档：关／未聚焦时／无论何时。一条控件同时管两条通道——停下来等你动手时弹一条，一轮跑完（含出错、中断）也弹一条。 |

「工作步骤展示」不在插件卡片上：它在 dsh 自己的 设置 → **通用** 里，插件只在你没选过时把它补成「标准」。

## 兼容性

-   兼容目标是 dsh 的两条发布线：**网页端 `0.2.1-rc.5`** 与**桌面端 `0.2.2-alpha.2`**。两者都实测过，插件认的契约面在这两版上一致。
-   **最低支持 `0.2.1-alpha.1`**；`0.2.0-rc.2` 及更早不再适配（2026-10-17 下线了那几处兜底：`data-text-shimmer` 双认、坞的「按形状找」老版分支、内置统计胶囊的收尾、文件变更行准备态的参数前缀扫描）。
-   `0.2.1-alpha.1` 起，输入框下方的统计坞带 `data-composer-dock`、准备态块带 `block.args`，插件直接认它们；更早的版本上它认不出来时原样不动，不会画错。
-   2026-10-31 核对过 rc.5 与 alpha.2 的全部接触面：`PLATFORM_MODULES`（11 个键）、四个座位名、插件认的 32 个 `data-*` 语义属性、`DisclosureRow` / `TextShimmer` / `ContextMeter` 三处实现、设计令牌的取用，两版逐项相同。改动只有一处不影响本插件的：`conversation.chat.reasoning.body` 那一版的 owner props 多一个 `rawText` 字段。
-   Node `^22.19.0 || >=24.0.0`。

## 关于本仓库

这里是插件的源码与发行说明。构建脚本、内部设计文档不在本仓库内，因此 clone 之后不能直接 `npm run build`；需要用插件请直接安装 npm 上的包。

## 许可

[MIT](https://npmcn.com/package/%40alm-allen/dsh-chat-ux/LICENSE)

## 常见问题

### @alm-allen/dsh-chat-ux 是什么？

Depseek Harness \(dsh\) Web GUI 的聊天区 UX插件\.

### 如何安装 @alm-allen/dsh-chat-ux？

在项目目录运行 npm install @alm-allen/dsh-chat-ux，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.2\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @alm-allen/dsh-chat-ux 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @alm-allen/dsh-chat-ux 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @alm-allen/dsh-chat-ux 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.19\.0 \|\| \>=24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @alm-allen/dsh-chat-ux 可以商用吗？

@alm-allen/dsh-chat-ux 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @alm-allen/dsh-chat-ux 的下载量有多少？

根据 npm 官方下载统计，@alm-allen/dsh-chat-ux 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,388 次，日均约 80 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @alm-allen/dsh-chat-ux 还在维护吗？

最新版本 0\.3\.2 发布于 2026/11/05（3 天前）；至今共发布 15 个版本，其中过去 12 个月发布了 15 个；首次发布于 2026/09/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

