
omdsh-dev/dsh-annotation
573Last commit Aug 16, 2026
dsh-annotation DSH plugin
dsh-annotation is a browser-side plugin for DSH Web that lets you select any text in an assistant reply, annotate it (or leave the note empty), and press Enter to send the annotation block together with your question. The model replies with numbered annotations, and each annotation label in the reply becomes a hoverable chip showing the passage and your note. The annotation block is hidden from your own message bubble to keep the conversation clean.
How to install the dsh-annotation DSH plugin
dsh plugin --profile web add git+https://github.com/omdsh-dev/dsh-annotation.gitCopying does not run this command. Review the repository and version before installing the dsh-annotation DSH plugin.
dsh-annotation DSH plugin data source
dsh-annotation DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-annotation DSH plugin can do
- Select-to-annotate: select assistant text, click toolbar 'Annotate', write a note or leave it empty; dismiss by clicking elsewhere or pressing Esc.
- Numbered marker + highlight: a blue numbered marker and highlight are anchored to the passage, viewport-anchored with collision avoidance, never lost when scrolled out of view.
- Cross-turn collection: any number of annotations accumulate across messages and turns, numbered from 1.
- Annotations ×N chip: a small chip beside the input box shows the count; hover to view all annotations, delete individually.
- Enter sends annotation block with your message: the annotation block plus the question are sent to the model together; the block is removed from your bubble before paint, leaving only the question and the chip.
- Numbered reply correspondence: a format instruction is injected so the model replies with 'Annotation 1: …' … 'Annotation N: …'.
- Reply annotation chips: 'Annotation N:' in the reply renders as hoverable chips that show the passage and your note when hovered.
Where the dsh-annotation DSH plugin fits
- Reviewing a long AI-generated answer by annotating specific passages and asking for clarification on each.
- Marking errors or interesting points in an assistant reply, then sending a follow-up question that references the annotations.
- Collaborative debugging: highlight code snippets in the assistant's response and ask the model to fix them one by one.
- Creating a structured critique of the assistant's output by numbering each point and receiving a numbered response.
Who the dsh-annotation DSH plugin is for
- DSH Web users who frequently interact with AI models and need precise context referencing.
- Power users who want to ask follow-up questions about specific parts of a long assistant reply without retyping passages.
dsh-annotation DSH plugin limitations
- Only works with DSH Web using the 'web' profile; other profiles are not supported.
- Requires DSH to be installed and running, and the plugin must be added via the official bundle path.
- The annotation block delimiter is hardcoded as '提问:' (Chinese) and cannot be changed without modifying the source.
- Bubble hiding relies on a MutationObserver and a polling fallback; in rare edge cases the annotation block might briefly flash before being hidden.
dsh-annotation DSH plugin: from the repository README
Quoted from the omdsh-dev/dsh-annotation README, the upstream source of the dsh-annotation DSH plugin. Copyright remains with the original authors.
**English** · [简体中文](./README.zh-CN.md) </div> <p align="center">Selection-annotation plugin for DSH Web: select text → annotate → press Enter to send it along with your message; the model replies to each annotation by number.</p> <p align="center"> <img src="https://badgen.net/badge/license/MIT/blue" alt="license"> </p> <img width="2940" height="1770" alt="image" src="https://github.com/user-attachments/assets/c3186efc-44d3-4e7f-9523-1902d9d037e9" /> <img width="2940" height="1770" alt="image" src="https://github.com/user-attachments/assets/0b48ac02-4648-4b94-8d8f-344f8b7c25b4" /> <img width="2940" height="1770" alt="image" src="https://github.com/user-attachments/assets/8b2610d0-3d00-41be-b314-bac2fe616787" /> <img width="2940" height="1770" alt="image" src="https://github.com/user-attachments/assets/9b66deea-3786-4296-9b0d-52873a15f5e1" /> Select any text in an assistant reply to annotate it (the annotation body may be left empty = just mark the passage). Annotations accumulate across messages and turns. An **Annotations ×N** chip appears next to the input box — hover to view all annotations, remove them one by one. Press Enter and the annotation block goes to the model to
Read the full READMERepository license: MIT
dsh-annotation DSH plugin questions
How do I install dsh-annotation?
Run `dsh plugin --profile web add git+https://github.com/omdsh-dev/dsh-annotation.git` in your terminal. Then restart the web service (e.g., `launchctl kickstart -k "gui/$(id -u)/com.dsh.web"`). After installation, you can verify with `dsh --profile web --dump-config | rg "id: dsh-annotation"` – it should show exactly one line.
Can I use dsh-annotation on mobile devices?
The plugin is designed for DSH Web, which is a desktop browser environment. The README does not mention mobile support, and the interaction relies on mouse selection and keyboard Enter, so it likely does not work on mobile touch interfaces.
Does the annotation block stay in my message history?
No, the annotation block is removed from your message bubble before the browser paints, so it never appears as visible text in your bubble. After a refresh, historical messages self-heal and the chip reappears. The model receives the full annotation block, but your bubble only shows the question and the chip.
What if the model doesn't reply with numbered annotations?
The plugin injects a format instruction into the message that tells the model to reply with 'Annotation 1: …' … 'Annotation N: …'. Most models will follow this instruction. If the model ignores it, the reply chips will not be rendered, but the annotations themselves are still sent. You can check the raw message to see the instruction.
How do I remove an annotation before sending?
Hover over the 'Annotations ×N' chip next to the input box. A popup shows all annotations; you can delete any of them individually by clicking the delete button next to each annotation. Alternatively, you can simply not press Enter – the annotations are stored in the chip and not sent until you press Enter.