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
A

dsh-annotate-sync

Annotate Sync

DeepSeek Harness HTML 文档预览就地批注插件:打开任意 HTML 预览即出现点选批注浮层,批注按文件保存,可整批发送给当前对话的 Agent,并通过 read_annotations 工具让 Agent 直接定位并修改源文件。In-place HTML document annotation for DeepSeek Harness: the overlay appears automatically in the document preview, annotations are saved per file, sent to the current conversati

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

npx -y @deepseek-ai/dsh plugin --profile web add github:chopperH0824/dsh-annotate-sync#d4c359e749ba5ed3474c78d8ca556555026edb4f
READMECompatibilityVersions

Description

DeepSeek Harness HTML 文档预览就地批注插件:打开任意 HTML 预览即出现点选批注浮层,批注按文件保存,可整批发送给当前对话的 Agent,并通过 read_annotations 工具让 Agent 直接定位并修改源文件。In-place HTML document annotation for DeepSeek Harness: the overlay appears automatically in the document preview, annotations are saved per file, sent to the current conversation, and exposed to the agent through tools.

Compatibility and provenance

Annotate Sync is published as dsh-annotate-sync and currently resolves to version 2.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
10/28/2026

Versions

2.0.0stable
10/28/2026
1.0.1stable
10/28/2026

Related plugins

Loading related plugins…

Latest
2.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/28/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 developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseExperimental Inspector@deepseek-ai/dsh-experimental-inspectorExperimental cross-realm CDP hub for Host debugging and Client Runtime inspection

README

dsh-annotate-sync

Open an HTML preview in DeepSeek Harness and the annotation overlay is already there. Pick elements, write notes, hand the batch to the agent, and the agent edits the source file by path. No server, no <script> tag, no target picker.

icon

What it is

A DeepSeek Harness plugin that takes over .html / .htm document previews:

  • open any HTML file in the right-sidebar Files panel (including one the agent just generated) and the 点选批注 / Mark overlay appears automatically;
  • hover highlight, click an element, write a note; numbered pins follow scrolling, resizing and layout changes;
  • annotations are saved per file, with selector, sampled text, computed styles and the change instruction;
  • leave picking with Esc, or press Send to Agent, and the batch goes into the current conversation as one structured message;
  • the agent calls read_annotations, receives file path + selector + note, and edits that HTML/CSS directly;
  • after the file changes the preview rebuilds; annotations stay; the agent can call set_annotation_status when done.

The old Agentation demo experience is preserved, without manually adding agentation.js, without the 8765 sync server, and without a local-service list to pick.

Install

# bundled CLI (macOS Desktop)
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
  plugin --profile desktop add dsh-annotate-sync@2.0.0

Add "dsh-annotate-sync" to dsh.profile.bundles in ~/.dsh/profiles/desktop/package.json, then fully quit and restart DeepSeek Harness.

Local development / tarball:

npm pack
dsh plugin --profile desktop add /absolute/path/to/dsh-annotate-sync-2.0.0.tgz

Use

  1. Restart DSH.
  2. Open any .html file from the right-sidebar Files panel — or open the bundled demo/index.html to try it.
  3. The floating 点选批注 / Mark button appears in the preview; click it and then click an element.
  4. Write the note and press Enter; Esc leaves picking.
  5. Auto-send is on by default: leaving picking sends the batch into the current conversation. You can also press Send to Agent at any time, or turn auto-send off.
  6. The agent reads the annotations and edits the source file; the preview refreshes when the file changes.
  7. If the agent does not mark them, say "apply my annotations" so it calls read_annotations.

The toolbar above the preview shows the file name, pending count, send, auto-send and clear.

Annotation data

{
  "id": "uuid",
  "page": {
    "url": "dsh-resource://file/session/<sessionId>/<encoded path>",
    "origin": "",
    "path": "demo/index.html",
    "title": "index.html"
  },
  "file": { "sessionId": "...", "path": "demo/index.html", "name": "index.html", "address": "dsh-resource://..." },
  "selector": "#hero-title",
  "tag": "h1",
  "className": "hero-title",
  "textSample": "Simple pricing",
  "styles": { "fontSize": "26px", "color": "rgb(15,23,42)", "backgroundColor": "rgba(0,0,0,0)" },
  "rect": { "x": 120, "y": 340, "w": 420, "h": 32 },
  "note": "Make the title shorter",
  "status": "pending",
  "order": 0,
  "createdAt": "ISO",
  "updatedAt": "ISO"
}

Store: ~/.dsh/annotate-sync/annotations.json plus readable annotations.md. Legacy v0/v1/v2 files migrate to v3 automatically; old HTTP-page annotations remain readable.

Model tools

ToolPurpose
read_annotations({ status?, pageUrl?, includeDone? })Read annotations; pending by default; Markdown includes 文件:<path> per file
set_annotation_status({ ids?, status, all?, pageUrl? })Mark applied (or back to pending) after editing
clear_annotations({ pageUrl? })Clear all, optionally per file

Configuration

config in cordis.patch.yml:

FieldDefaultPurpose
dir~/.dsh/annotate-syncannotation storage directory
route/__dsh-annotate-syncinternal API/overlay prefix
legacyRoute/api/annotate-sync/annotationsold sync bridge; empty disables
maxBodyBytes262144request body cap
tooltrueregister the model tools

Architecture

DSH Web
└─ Client: custom HTML document-preview renderer (priority: external)
   ├─ reuses the builtin bytes-complete renderer + relative CSS/JS packing + opaque blob iframe
   ├─ injects window.__DSH_ANNOTATE__ + overlay.js
   ├─ toolbar: send / auto-send / clear
   └─ postMessage bridge: overlay ↔ document component
Host: routes + v3 annotation store + three model tools
Overlay: picking, pins, comment cards, status
  • The iframe stays sandbox="allow-scripts" with an opaque origin; the overlay and the document component only exchange postMessage; the parent validates event.source plus the channel.
  • Relative CSS/JS are read through DSH's workspaceFiles and packed into the blob, same as the builtin preview.
  • No extra HTTP server is started and no network requests are injected into the page.

Known limitations

  • A page CSP that blocks external scripts also blocks the overlay; the preview itself still renders.
  • The custom renderer always allows the page's own scripts (the overlay needs them); it is not gated by the builtin interactive-preview setting.
  • Elements inside cross-origin iframes or closed shadow roots cannot be picked.
  • Only .html / .htm are taken over; other document types keep the builtin preview.
  • Pins rely on CSS selectors and geometry; large DOM changes can misplace a pin, while the note and file path remain.

Upgrading from 1.x

v2 removes the local-service preview and the right-sidebar annotation panel. The old annotations.json migrates; the legacy /api/annotate-sync/annotations bridge stays. sync-server.mjs is no longer needed.

Development

npm test          # node --test
npm run check     # node --check all runtime files
npm run pack:check

Protocol: docs/PROTOCOL.md · Publishing: docs/PUBLISH.md

License

MIT. The HTML renderer is adapted from DeepSeek Harness (MIT); see NOTICE.