dsh-annotation
omdsh-dev/dsh-annotation
选中文字→批注→随消息发送,回复按批注逐条对照。
安装
把 dsh-annotation 装进 DeepSeek Harness
npm 方式
直接拉已发布的 tarball,不用克隆整个仓库,也不需要额外配置。如果你用的是别的 profile,把 `web` 换成对应的名字。
GitHub 方式 · npm 包
从 GitHub 装会执行项目自己的构建脚本,而 pnpm 默认拦着不让跑——先跑一次这条命令,pnpm 会打印出要加到 ~/.dsh/profiles/web/pnpm-workspace.yaml 里 `allowBuilds` 下面的那个 key。
我们跑过之后
我们跑过,装得上
这里每条命令都在一次性容器里、对着干净 profile 真跑过,结果取自 harness 自己的记录,不是读源码猜的。 最近一次 11 天前.
挂进你的 README
给维护者的:badge 取这条 listing 最近一次 sandbox 实测的结果,重跑之后它自己会变,读者点开就是这页的完整记录。
安装前须知
装 dsh-annotation 之前,先看这几条
- 源码在这里: omdsh-dev/dsh-annotation——已进入社区精选库,DSH 自带的插件市场就是从这儿装的。
- 开源协议:MIT。
- 自动识别到:终端执行。授权之前请先读一遍源码。
- 被收录在这里不代表通过了安全审计。插件是带着你 agent 的权限在跑。
AI 锐评
是什么 — dsh-annotation 插件支持在 DSH Web 界面中对助手回复文本进行注解,并在发送时将注解附带发送,模型会按编号回复每个注解。
谁该装 — 在使用 DSH Web 平台进行多轮对话时,如果需要对助手回复中的文本做注解以指导模型回答,此插件适用。 如果仅使用桌面端 DSH 而非网页版,或者对话仅限单轮无需跨消息注解,则无需安装此插件。
注意 — 沙箱实测通过,新建 profile 安装并注册成功。未发现明显的坑。静态检查提示会执行 shell 命令,但这仅为扫描提示,非缺陷。
锐评 — 如果需要在多轮 DSH Web 会话中对助手文本做注解并让模型对应回复,我会选择安装它,因为这能直接提升回复的针对性。
grok-4.6 写的,只当参考,不当结论。里面说装得上或装不上,是在干净 profile 里真跑过的;其余都是读仓库读出来的。以实际运行为准。
dsh-annotation 是做什么的

dsh-annotation 是一个 DeepSeek Harness 插件,用于在 DSH Web 的 assistant 回复中选取段落并添加批注,再把这些批注随下一条消息发送给模型。选中文本后点击 “Annotate”,批注内容可以为空;批注会跨消息、跨轮次累计,并在输入框旁显示 Annotations ×N。发送时,浏览器将编号、原文和批注组成消息块,再接上输入框中的问题,同时要求模型按 Annotation 1: …、Annotation 2: … 逐条回答。回复中的编号会变成可悬停的 chip,显示对应原文和批注。
它是纯浏览器端 bundle:client.js 通过 client-modules 注入,使用 MutationObserver 处理用户气泡和流式回复,并把批注数据保存到消息 tag 中。发送前,批注块会从自己的消息气泡 DOM 中移除,只留下问题和 chip;刷新后也会尝试修复历史消息。插件不修改 DSH 核心,cordis.patch.yml 只写入自身 id,Node 端为空实现。
它适合需要围绕多处原文提问、并希望模型逐项回应的 DSH Web 会话。若使用的不是 Web 界面,或不希望插件改动浏览器 DOM、注入回复格式提示,则不应使用。README 还记录了与 dsh-focus-chat focus conversation view 的兼容性。
dsh-annotation 的文档
行为说明
插件的逻辑全部在浏览器端 client.js 中,属于官方 bundle,不需要构建步骤。package.json 声明 dsh.bundle 和 dsh.client,由 client-modules 注入;Node 端为空实现。选中文本、输入批注后,插件会在提交前通过 setDraft 生成消息块,不直接改写 composer textarea。批注可为空,并可跨消息、跨轮次累计。
消息处理
模型收到编号、原文、批注和问题,并被要求返回 Annotation 1: … 到 Annotation N: …。用户消息气泡在浏览器绘制前移除批注块,只保留问题和 Annotations ×N chip。流式状态结束、data-streaming 被移除后,回复中的 Annotation N: 会变成可悬停 chip。相关内容保存在最近一条带 annotation tag 的用户消息的 tag.__annotationItems 中,刷新后重建。
配置与命令
cordis.patch.yml 只插入自身 id 一次,profile patch 保持 []。检查配置和客户端可用:
dsh --profile web --dump-config | rg "id: dsh-annotation"
curl -s -o /dev/null -w '%{http_code}\n' "http://127.0.0.1:3080/plugins/@omdsh-dev/dsh-annotation/client.js"
前一个命令应只显示一行,后一个应返回 200。重启 web service 的 README 命令为 launchctl kickstart -k "gui/$(id -u)/com.dsh.web"。
环境要求
插件面向 DSH Web,并依赖浏览器端 client-modules 路径。Enter 处理包含 isComposing 和 keyCode 229 判断。README 说明它兼容 dsh-focus-chat 的 focus conversation view;该视图中的 assistant 行使用 [data-focus-flow] 和 *_assistant CSS-Modules class。
根据项目自己的文档整理,会跟着上游更新。两边对不上时以源码仓库为准—— 去 GitHub 看原始 README
同一分类
dsh-annotation 的同类插件
dsh-web-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
我们跑过,装得上
dsh-web-ui-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
没有一行式安装命令——这个插件在一个大仓库的子目录里,也没发 npm 包。