Skip to content

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.gz

Copying 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.