Preface¶
In DSH web sessions, long conversations, streaming output, and paginated history can make ordinary page search insufficient: the browser’s native find function searches the sidebar, composer, and page UI together, and it is not suitable for following the current session as the model continues generating output.
The following introduces dsh-conv-search, maintained by beijingwahw. It is a DSH client plugin that restricts Ctrl/Cmd+F to the current active conversation’s scroll area, highlights rendered text, and supports navigation between matches forward and backward.
Plugin Positioning¶
- Installation name:
beijingwahw/dsh-conv-search - Maintainer:
beijingwahw - Category: client
- License:
MIT - Scope: Only reads rendered conversation text on the browser side; it does not touch prompts, messages, schemas, streams, tools, or provider requests
- Repository: https://github.com/beijingwahw/dsh-conv-search
Core Features¶
Search Scope¶
The plugin searches within the current conversation’s scroll area, matching:
- User messages
- Assistant text
- Tool cards
- Paginated history
The plugin excludes the composer area and its own search bar to avoid false matches from draft text.
The search scope is limited to the active conversation panel; sidebar conversation titles and settings pages are not included.
Highlighting and State¶
The plugin uses the CSS Custom Highlight API to draw highlights without modifying React-managed DOM.
When there are no results, the counter turns red, the search bar border provides feedback, and a one-time shake animation appears; this animation respects prefers-reduced-motion.
During streaming output or when loading older pages, the plugin debounces re-searching and maintains the current scroll position.
Match Options¶
The plugin supports two match options:
Aa: Case sensitivityab: Whole word matching
Match Navigation¶
The plugin provides an n / total counter and supports wrap-around navigation forward and backward:
Enter,F3,Ctrl/Cmd+G: Jump to next matchShift+Enter,Shift+F3,Ctrl/Cmd+Shift+G: Jump to previous match
ArrowUp / ArrowDown are used to browse query history.
The search button in the header is registered via the following conversation header slot:
conversation.session.header.actions
Installation and Activation¶
Before installation, you need Node.js ≥ 22 and pnpm.
If the plugin installation reports that pnpm is not recognized, install pnpm first:
npm install -g pnpm
Then add the plugin to the web profile:
dsh plugin add beijingwahw/dsh-conv-search --profile web
Restart the web service to load the plugin:
dsh web
If dsh web reports EADDRINUSE :3080, an old process is still occupying port 3080. Stop the old process first, or start with a different port:
dsh web --port 3081
Verify the plugin is mounted:
dsh --profile web --dump-config | grep conv-search
Typical Usage¶
-
Open the search bar with
Ctrl/Cmd+For the conversation header search icon. -
Enter a keyword; search runs as you type with a 120 ms debounce.
-
Toggle case sensitivity or whole word matching with
Aaorab. -
Press
EnterorShift+Enterto navigate forward or backward between matches. -
Use
ArrowUp/ArrowDownto review recent query history. -
Press
Escto close the search bar and clear all highlights.
Browser Requirements and Limitations¶
Requires browsers with CSS Custom Highlight API support:
- Chrome/Edge 105+
- Safari 17.2+
- Firefox 132+
In unsupported browsers, the search bar can still count matches but will not draw highlights.
Matching supports plain text only:
- No regular expressions
- No diacritic folding
- No cross-node phrase matching
The search bar position is fixed at:
top: 64px; right: 24px
It is currently not draggable.
Use Cases and Notes¶
Suitable for anyone who needs to find rendered text within the current conversation in DSH web sessions, such as repeated text in long conversations, tool cards, and paginated history.
This plugin only reads rendered conversation text and does not touch prompts, messages, schemas, streams, tools, or provider requests. However, it runs as a client plugin with the permissions of the current dsh process, so it is recommended to review the source code, dependencies, and license before installation.
This plugin is licensed under MIT.
Conclusion¶
The core value of dsh-conv-search is to confine browser search to the current DSH conversation: with a clear scope, the ability to follow streaming output, and support for n / total navigation.
Repository: https://github.com/beijingwahw/dsh-conv-search
The catalog page URL was not found in the verified materials.