DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
A

dsh-annotate-sync

Annotate Sync

DeepSeek Harness HTML 文档预览就地批注插件:打开任意 HTML 预览即出现点选批注浮层,批注按文件保存,可整批发送给当前对话的 Agent,并通过 read_annotations 工具让 Agent 直接定位并修改源文件。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:chopperH0824/dsh-annotate-sync#d4c359e749ba5ed3474c78d8ca556555026edb4f
README兼容性版本

说明

DeepSeek Harness HTML 文档预览就地批注插件:打开任意 HTML 预览后,批注浮层会自动显示在文档中;批注按文件保存,可发送至当前对话,并通过工具提供给 Agent,使其直接定位并修改源文件。

兼容性与来源证明

Annotate Sync 以 dsh-annotate-sync 发布,当前版本为 2.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/28

版本

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

相关插件

正在加载相关插件…

最新版
2.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/28
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

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.