dsh-web
zhu1090093659
DeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发
Installed cleanly when we ran it
omdsh-dev/dsh-annotation
Select text → annotate → send with your message; replies map back to each annotation.
Install
via npm
Resolves a published tarball rather than cloning the repository, and installs without any extra setup. Swap `web` for your profile name if you run another one.
via GitHub · npm package
Installing from GitHub runs the project's build script, which pnpm blocks until you allowlist it — run the command once and pnpm prints the exact key to add under `allowBuilds` in ~/.dsh/profiles/web/pnpm-workspace.yaml.
What happened when we ran it
Installed cleanly when we ran it
Every command here is run in a throwaway container against a clean profile, and the result is whatever the harness recorded — not a guess from the source. Last run 27d ago.
Show it in your README
For maintainers: the badge serves this listing's latest sandbox verdict, so a re-run updates it on its own — and it links readers to the full result here.
Due diligence
What it is — The dsh-annotation plugin enables selecting text from assistant replies in DeepSeek Harness Web and annotating it to be sent with your message.
Who it is for — Users who engage in extended conversations with DeepSeek Harness Web where precise annotation of specific reply segments is needed can benefit from this plugin. Those who prefer not to annotate text selections in their interactions with the model will not need it.
Watch out — Sandbox testing confirmed successful installation in a fresh profile with registration by harness. The implementation is purely browser-side with no core changes to DeepSeek Harness. No obvious issues were discovered.
The verdict — I will install it because it allows marking specific text passages in model replies and having the model respond with corresponding numbered annotations.
Generated by grok-4.6, and a starting point rather than a verdict. Where it says a plugin installs or does not, that is from a real run in a clean profile — everything else is read off the repository. Trust the source over this.

dsh-annotation is a DeepSeek Harness plugin that adds numbered text annotations to assistant replies in DSH Web and sends them with the next message. Select text in an assistant reply, choose Annotate, optionally enter a note, and press Enter. The annotations remain collected across turns; an Annotations ×N chip beside the composer shows and manages them. The model receives a block containing each passage, note and number, followed by the question, and is asked to respond as Annotation 1: …, Annotation 2: …. Those labels become hoverable chips linked to the corresponding passage.
The plugin is an official bundle: package.json declares dsh.bundle and dsh.client, and client.js is injected into the browser through client-modules. The browser code observes rendered messages with MutationObserver, uses the current selection and assistant text, and builds the annotation block through setDraft only when sending. It removes that block from the user bubble before paint, stores annotation items on the tagged user message as tag.__annotationItems, and rebuilds decorations after refresh. cordis.patch.yml adds the plugin id once; the profile patch remains [], and the Node half is empty.
dsh-annotation is intended for DSH Web users who need passage-by-passage questions across messages or turns. It is the wrong choice for non-web interfaces or workflows that do not want browser DOM changes and an injected response-format instruction. It also requires the DSH Web client-module path; compatibility with the focus view is documented for dsh-focus-chat.
dsh-annotation 运行在浏览器端,全部逻辑位于手写的 client.js bundle 中,不需要构建步骤。package.json 声明 dsh.bundle 和 dsh.client,由 client-modules 注入;Node 端为空实现。插件读取选中的 assistant 文本、批注内容和 composer 草稿,在提交前通过 setDraft 组合消息,不直接修改 composer textarea 的 DOM。
每条批注包含编号、原文和可为空的批注。发送时,插件把批注块与问题交给模型,并注入要求模型返回 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"。
可跨消息和会话累计任意数量的批注,标记会随滚动重新锚定。Enter 处理包含 isComposing 和 keyCode 229 判断,兼容 IME 输入。插件也支持 dsh-focus-chat 的 focus conversation view,其中 assistant 行使用 [data-focus-flow] 容器和 *_assistant CSS-Modules class。
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub
Same category
zhu1090093659
DeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发
Installed cleanly when we ran it
zhu1090093659
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
No one-line install — this plugin lives inside a larger repository and publishes no npm package.
zhu1090093659
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
No one-line install — this plugin lives inside a larger repository and publishes no npm package.
zhu1090093659
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
No one-line install — this plugin lives inside a larger repository and publishes no npm package.
omdsh-dev
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Installed cleanly when we ran it
ccch1mneyyy
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
Installed cleanly when we ran it