DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

@dsh-lab/dsh-plugin-chat-annotations

Plugin Chat Annotations

DSH plugin @dsh-lab/dsh-plugin-chat-annotations

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:ynnmuraii/dsh-plugin-chat-annotations#f17e5383a2fe6bb9952d208c99965a88fe1a3c9d
READMECompatibilityVersions

Description

DSH plugin @dsh-lab/dsh-plugin-chat-annotations

Compatibility and provenance

Plugin Chat Annotations is published as @dsh-lab/dsh-plugin-chat-annotations and currently resolves to version 0.0.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/25/2026

Versions

0.0.0stable
8/25/2026

Related plugins

Loading related plugins…

Latest
0.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
Not declared
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/3/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Better Sidebardsh-better-sidebarBetter Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundleClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-plugin-chat-annotations

Annotate any text in the DeepSeek Harness chat: select a fragment, attach a comment (or not), and the annotation travels to the agent with your next message — as a structured content part, not as a field decoration.

Version note. Built and verified against DeepSeek Harness 0.1.1-rc.2. The UI it hooks into is a moving target; on newer Harness versions re-verify and update the plugin if something shifted.

Features

  • Select & annotate — select text in any message, click Add to chat, and a numbered marker appears above the selection.
  • Non-destructive highlights — the transcript is React-owned; the plugin never mutates it. Highlights are painted with the CSS Custom Highlight API, so the annotated text always stays intact (delete an annotation → the text is untouched).
  • Comment popup — optional comment per annotation, saved with the marker.
  • Annotation pill — a floating counter above the composer (e.g. ◫ 2 annotations); hover it to list every annotation with its excerpt and comment.
  • Sent with the request — annotations are appended to session.prompt as an extra text content part, so the agent sees them as part of the message. Press Enter with annotations and an empty composer: the plugin sends the annotation block alone — no typed text required.
  • Auto cleanup — after a successful send the markers, pill, and highlights are cleared, freeing the buffer for the next round.
  • Scroll-safe markers — markers hide when their text scrolls out of the chat viewport (or into the composer panel) instead of drifting over the UI.

Install

From the packed tarball

# build the bundle (from this repo)
pnpm install --config.strictDepBuilds=false --config.minimumReleaseAge=0
pnpm build
pnpm pack          # produces dsh-lab-dsh-plugin-chat-annotations-0.0.0.tgz

# install into your profile (run from anywhere; profile path is $DSH_HOME/profiles/<name>)
dsh plugin --profile web add file:/absolute/path/to/dsh-lab-dsh-plugin-chat-annotations-0.0.0.tgz --config.strictDepBuilds=false

Then restart your dsh web server (or just refresh the browser tab — client bundles are re-read on page load).

From GitHub

dsh plugin --profile web add github:ynnmuraii/dsh-plugin-chat-annotations

Verify it loaded

Open the web UI. The annotation pill (◫ 0 annotations) appears above the composer once a session is open. If it does not, check the boot page (HARNESS / Failed to load plugins) and the server logs.

Usage

  1. Open a session and select a word / sentence in any message.
  2. Click Add to chat — a numbered blue marker appears over the text.
  3. (Optional) type a comment in the popup and click Save; or close it with Cancel to keep a marker-only annotation.
  4. To edit or delete: click the marker → popup → Save / trash icon.
  5. Send your message. The annotation context is appended to the request automatically. If the composer is empty, just press Enter — the annotation block is sent on its own.
  6. After the send, annotations clear automatically.

How annotations reach the agent

The plugin intercepts session.prompt traffic and appends an extra text content part to the message:

content: [
  { type: "text", text: "your message..." },
  { type: "text", text: "[User annotations]\n1. Selected text: «excerpt» — Comment: ..." }
]

Entering text is never required: with pending annotations and an empty composer, Enter sends the annotation block as the sole content.

Development

pnpm install --config.strictDepBuilds=false --config.minimumReleaseAge=0
pnpm typecheck
pnpm test        # vitest + jsdom (6 tests: lifecycle, selection, renumbering, clip)
pnpm build       # tsc ESM host + CJS client wrapped for __ModuleLoader__.load
  • src/index.ts — host half (Cordis plugin entry, greet tool).
  • src/client.ts — browser half: toolbar, markers, pill, popup, wire interception.
  • tests/index.spec.ts — jsdom behavior tests.

Layout

src/
  index.ts      host entry (name / inject / apply)
  client.ts     browser half (registered via __ModuleLoader__.load)
tests/          vitest + jsdom
scripts/
  build-client.mjs   wraps the CJS client emit into the module-loader contract
  pack-smoke.mjs     installs the tarball and executes the built entry

Compatibility

Targets: next (@deepseek-ai/dsh 0.1.1-rc.2, cordis 4.0.1). Verified via pnpm lab verify chat-annotations --target next (inspect, install, typecheck, test, build, pack, pack-smoke, composed profile).