DSH Marketplace

dsh-annotation

omdsh-dev/dsh-annotation

Select text → annotate → send with your message; replies map back to each annotation.

Install

Add dsh-annotation to DeepSeek Harness

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.

Due diligence

Before you install dsh-annotation

  • Source of record: omdsh-dev/dsh-annotation — present in the community registry that DSH's own plugin market installs from.
  • Licensed under MIT.
  • A listing here is not a security review. Plugins run with your agent's permissions.

What dsh-annotation does

Highlighted text fragments merge with numbered notes and separate into linked response tokens.

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 documentation

工作方式

dsh-annotation 运行在浏览器端,全部逻辑位于手写的 client.js bundle 中,不需要构建步骤。package.json 声明 dsh.bundledsh.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

Alternatives to dsh-annotation

dsh-web-ui-all

zhu1090093659

3.7k

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.

GitHub sourceTypeScripttoday
1.6k

Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.

npm packageTypeScripttoday

dsh-TUI

ccch1mneyyy

1.5k

Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.

npm packageTypeScripttoday

dsh-at-file

omdsh-dev

261

Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.

npm packageJavaScripttoday
190

A terminal UI (TUI) for DeepSeek Harness.

npm packageTypeScripttoday
158

In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.

GitHub sourceTypeScriptyesterday