
beijingwahw/dsh-conv-search
30Last commit Aug 15, 2026
dsh-conv-search DSH plugin
This plugin adds a floating search bar to the conversation view, allowing you to search for text within the current chat session. It highlights all matches using the CSS Custom Highlight API, supporting case-sensitive and whole-word matching, and provides easy navigation between occurrences. The search stays in sync with streaming output and does not interfere with the harness core.
How to install the dsh-conv-search DSH plugin
dsh plugin --profile web add https://github.com/beijingwahw/dsh-conv-search/archive/refs/tags/v0.1.0.tar.gzCopying does not run this command. Review the repository and version before installing the dsh-conv-search DSH plugin.
dsh-conv-search DSH plugin data source
dsh-conv-search DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-conv-search DSH plugin can do
- Ctrl/Cmd+F opens the floating search bar, Esc closes it.
- Match case and whole word toggle buttons for precise searching.
- Live n/total match counter with Enter/Shift+Enter navigation and wrap-around.
- Query history accessible via ArrowUp/ArrowDown keys.
- Zero-result visual feedback: red border, shake animation respecting prefers-reduced-motion.
- Streaming-aware MutationObserver re-runs search debounced without stealing scroll position.
Where the dsh-conv-search DSH plugin fits
- Searching for specific terms in long, scroll-heavy conversations.
- Jumping between every occurrence of an error code or function name.
- Finding a quote or fact while the model is still streaming new text.
- Using case-sensitive search to distinguish variable names like 'foo' vs 'Foo'.
- Quickly locating a tool card or system message in the transcript.
Who the dsh-conv-search DSH plugin is for
- DeepSeek Harness users who frequently have long chat sessions.
- Developers and researchers who need to quickly find specific information within conversation logs.
dsh-conv-search DSH plugin limitations
- Plain-text matching only: no regex, diacritic folding, or cross-node phrase matching.
- Requires CSS Custom Highlight API (Chrome/Edge 105+, Safari 17.2+, Firefox 132+); on unsupported browsers the bar counts matches but paints no highlights.
- Fixed search bar position (top: 64px, right: 24px); not draggable.
- Search scope is limited to the active conversation column; sidebar titles and settings pages are excluded.
dsh-conv-search DSH plugin: from the repository README
Quoted from the beijingwahw/dsh-conv-search README, the upstream source of the dsh-conv-search DSH plugin. Copyright remains with the original authors.
English | [中文](README.zh.md) In-conversation text search for the DeepSeek Harness web UI — the `Ctrl+F` you already know, scoped to the current chat session. A floating search bar highlights every match in the rendered transcript and walks between them, without touching a single line of harness core code. ## Problems it solves - **Long sessions are unsearchable**: the browser's native find searches the whole page (sidebar, composer, chrome) and cannot follow a conversation that keeps streaming. This plugin searches only the active conversation scrollport and stays in sync while the model is still writing. - **No way to jump between occurrences**: native find gives no "n / total" navigation. This plugin provides Enter / Shift+Enter and prev/next buttons with wrap-around, centering each match in view. - **Highlighting must not fight React**: the transcript DOM is React-owned and re-renders continuously during streaming. Instead of wrapping matches in `<mark>` nodes (which would mutate React-managed text and break reconciliation), the plugin paints ranges through the CSS Custom Highlight API — an overlay that survives every re-render and needs zero DOM cleanup. ## Features - **Ct
Read the full READMERepository license: MIT
dsh-conv-search DSH plugin questions
How do I open the search bar?
Press Ctrl/Cmd+F while a conversation is open. Alternatively, click the search icon in the session header action buttons. The search bar will appear at the top-right of the conversation view.
Why are highlights not showing up?
The plugin requires the CSS Custom Highlight API, which is available in Chrome/Edge 105+, Safari 17.2+, and Firefox 132+. If your browser is older or unsupported, the matches will be counted but not visually highlighted. Check your browser version and update if needed.
Can I search for a phrase that spans multiple lines or styled spans?
No, the plugin uses plain-text matching only. It does not support regex, diacritic folding, or cross-node phrase matching. If a phrase is split across styled spans (e.g., bold or code), it will not be matched as a single string.
Does the search work while the model is still streaming?
Yes, the plugin is streaming-aware. A MutationObserver re-runs the search debounced whenever new text appears in the transcript, without stealing your scroll position. The active match remains anchored by identity, so it won't jump to a different occurrence.
How do I navigate between matches?
Press Enter for next match, Shift+Enter for previous match. You can also use F3 / Ctrl+G for next and Shift+F3 / Ctrl+Shift+G for previous. The search bar also has prev/next buttons. Navigation wraps around when reaching the end or beginning.