
BrambleXu/dsh-annotate
50Last commit Aug 14, 2026
dsh-annotate DSH plugin
dsh-annotate is a DSH plugin that lets you point at elements in a Chrome/Chromium browser and capture selectors, DOM facts, computed style highlights, accessibility data, comments, and optional viewport screenshots. It uses a loopback WebSocket bridge to communicate with the agent, making visual feedback precise and structured. The companion Chrome extension handles element selection.
How to install the dsh-annotate DSH plugin
dsh plugin --profile demo add ./dsh-annotateCopying does not run this command. Review the repository and version before installing the dsh-annotate DSH plugin.
dsh-annotate DSH plugin data source
dsh-annotate DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-annotate DSH plugin can do
- Select elements directly in Chrome or Chromium via the `/annotate` command.
- Capture CSS selectors, DOM properties, computed style highlights, and accessibility data for each selected element.
- Attach comments and optional viewport screenshots to annotations.
- Send structured annotations to the agent through a local loopback WebSocket bridge.
- Restrict browser connections by loopback host, extension origin, and optional extension ID for security.
Where the dsh-annotate DSH plugin fits
- Pointing out which button or input field the agent should interact with on a web page.
- Reporting visual bugs by highlighting the exact element and its computed styles.
- Providing accessibility feedback by capturing ARIA roles and properties of an element.
- Sending a screenshot of the visible viewport alongside annotated elements for context.
- Debugging UI layout issues by attaching DOM facts and style highlights.
Who the dsh-annotate DSH plugin is for
- Developers using DeepSeek Harness to automate browser-based tasks or UI testing.
- QA engineers who need to give precise visual feedback to an AI agent about web page elements.
dsh-annotate DSH plugin limitations
- Version 0.1 targets only one local Chrome/Chromium browser and one active tab.
- Screenshots are limited to the visible viewport; full-page capture is not supported.
- Remote browsers, edit recording, and inline draggable note cards are deferred.
- Requires the companion Chrome extension to be installed and loaded unpacked.
- The WebSocket bridge only accepts connections from loopback hosts and chrome-extension:// origins.
dsh-annotate DSH plugin: from the repository README
Quoted from the BrambleXu/dsh-annotate README, the upstream source of the dsh-annotate DSH plugin. Copyright remains with the original authors.
Visual browser feedback for DeepSeek Harness. `/annotate` asks the companion Chrome extension to enter selection mode; each selected element contributes a selector, DOM facts, computed style highlights, accessibility data, a comment, and an optional viewport screenshot to the agent's next turn. ## Why this exists 💡 Browser UI problems are difficult to describe precisely through plain text. `dsh-annotate` lets you point at the relevant element and send the Agent the surrounding browser facts, so visual feedback stays attached to the page element instead of becoming a vague description or a copied screenshot. ## Features ✨ - Select elements directly in Chrome or Chromium through `/annotate`. - Capture selectors, DOM facts, computed-style highlights, accessibility data, comments, and optional viewport screenshots. - Send structured annotations to the Agent through a local loopback WebSocket bridge. - Restrict browser connections by loopback host, extension origin, and optional extension ID. ## Install 📦 Add the plugin project to a Harness profile: ```sh dsh plugin --profile demo add ./dsh-annotate ``` Then install the companion extension: 1. Open `chrome://extensions` in Ch
Read the full READMERepository license: MIT
dsh-annotate DSH plugin questions
How do I install dsh-annotate?
Run `dsh plugin --profile demo add ./dsh-annotate` in your DeepSeek Harness environment. Then open Chrome or Chromium, go to `chrome://extensions`, enable Developer mode, click 'Load unpacked', and select the `browser-extension` directory inside the project. Open the extension popup and keep the default bridge endpoint.
Can I use dsh-annotate with a remote browser?
No, version 0.1 only supports a single local Chrome/Chromium browser and one active tab. Remote browsers are deferred for future releases. The WebSocket bridge is restricted to loopback hosts for security.
How do I change the port or host the plugin listens on?
You can configure it in the Harness profile YAML under the dsh-annotate config section. Set `host`, `port`, `allowedExtensionId`, `requestTimeoutMs`, `maxPayloadBytes`, and `includeScreenshot` as needed. The server refuses non-loopback hosts.
What data does the annotation capture?
For each selected element, it captures a CSS selector, DOM facts (like tag name, id, classes), computed style highlights, accessibility data (ARIA attributes, role, etc.), a comment you type, and an optional viewport screenshot. All this is sent as structured data to the agent.
Is the extension ID required for security?
It is optional. If you leave `allowedExtensionId` empty, any locally installed Chrome extension that connects to the bridge will be accepted. For stricter isolation, copy the extension ID shown in the popup and set it in the config. The bridge also restricts connections to loopback hosts and `chrome-extension://` origins.