Automatically highlights key points, definitions, warnings, and questions in completed assistant answers using one separate model call.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-answer-highlighter
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Matcha-Eason/dsh-answer-highlighter
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Automatic key-point, definition, warning, and question highlighting for AI answers in DSH Web. The main answer keeps streaming as usual; annotations are generated after the answer completes and rendered in place.
1. What Problem It Solves
Highlights answers like PDF annotations. In long AI responses, important information is often buried in sentences rather than headings. This plugin makes those sentences easy to scan.
After an answer completes, the plugin makes one additional model call to identify notable passages. It uses deepseek-official/deepseek-flash by default. This call only produces annotations; it does not affect the main answer or rewrite the original session log.
2. Features
- Generates annotations after an answer completes
- Four semantic highlight types, described below
- Automatic light and dark theme support
- Restores highlights after page refresh
- Local JSONL storage
- Does not rewrite the original answer or session log
| Type | Color | Use |
|---|---|---|
key-point |
Bright yellow | Conclusions, core facts, and the most important information |
definition |
Blue | Concept explanations, terminology, and boundary conditions |
warning |
Bright red | Risks, limitations, deprecations, and counterintuitive caveats |
question |
Green | Open questions, unresolved points, and user decisions |
Colors above describe the light theme. Dark theme automatically adjusts brightness and opacity for readability.
3. Requirements
- DSH Web
- Node.js 20 or later
- A browser supporting the CSS Custom Highlight API
- A configured and available DeepSeek model route
4. Installation
Run this in the plugin directory:
npm install
npm run build:client
Install it into the DSH web profile:
dsh plugin --profile web add github:Matcha-Eason/dsh-answer-highlighter
5. Quick Start
- Start DSH Web.
- Start a new conversation.
- Wait for the main answer to complete.
- Highlights usually appear after another 3–8 seconds.
6. Default Model
The plugin uses deepseek-official/deepseek-flash to generate annotations. This is a separate auxiliary model call and consumes additional tokens. To use another model, override provider and model in the plugin configuration. To follow the main answer model, configure both fields with the same route.
7. How It Works
Main answer completes
↓
Read user question and answer text
↓
Call deepseek-flash to generate annotations
↓
Validate quotes and write local JSONL
↓
Browser polls the annotation API
↓
Locate text in the DOM and render highlights
The main answer and annotation pipelines are separate. Annotation failures do not affect the main answer.
8. Data and Privacy
Annotations are stored at:
$DSH_HOME/plugin-data/dsh-answer-highlighter/annotations
Set DSH_ANSWER_HIGHLIGHT_DATA to use another directory. Each session gets one JSONL file, with one line per assistant message. Empty annotation results are also recorded to avoid repeated model calls.
9. Browser Support
The browser must support the CSS Custom Highlight API. Supported browsers show the four-color highlights; unsupported browsers keep the page unchanged. Safari is currently unsupported.
10. FAQ
Why are there no highlights?
- Old sessions are not backfilled
- The answer may not be complete yet
- The browser does not support the CSS Custom Highlight API
- The returned quote cannot be uniquely located in the DOM
- The annotation call failed or timed out
Does it consume extra tokens?
Yes. After each answer completes, the plugin makes one separate call to deepseek-flash.
Are old sessions backfilled?
No. Only assistant messages that complete after the plugin is running are annotated.
11. Uninstall
dsh plugin --profile web remove dsh-answer-highlighter
To remove local data completely, delete the default storage directory.
12. License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 7809
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 7809
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3680
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 3110
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 2750
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1359
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.