fakeNihilist/dsh-plugins--packages-chat-search ↗★ 0

dsh-plugin-chat-search

In-session chat text search: find, step through, and highlight matches inside the current conversation without mutating its DOM. 适合需要在当前对话中快速查找、定位和高亮匹配文本的用户。

패키지
dsh-plugin-chat-search
호환성
미검증
버전
1.1.0
라이선스
MIT
최근 업데이트
2026. 10. 20.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fakeNihilist/dsh-plugins#ddc72d831496eb8ab20dbb59691a474a543836da&path:packages/chat-search

Usage

ControlMeaning
Magnifier (Session header)Open or close the find bar.
Ctrl+F / Cmd+FOpen the find bar (browser find is suppressed while a conversation is resident).
AaMatch case. Off by default (case-insensitive).
.*Regular expression. Off by default (literal query).
n/mActive match / total matches. 2000+ means the match ceiling was reached.
ChevronsPrevious / next match, wrapping. Enter / Shift+Enter do the same.
F3 / Shift+F3Next / previous match while the bar has focus.
EscClose the bar and clear every highlight.

Details worth knowing:

  • The bar opens anchored under the magnifier, with the input focused and its text selected, so the shortcut is one keystroke away from typing.
  • The shortcut addresses the conversation that holds focus; with none focused, it picks the widest visible resident conversation (the main column when the Sidebar chat is also docked).
  • One find bar exists at a time: opening one closes any other, and switching to a different Session closes the bar rather than carrying a stale query across.
  • An unusable regular expression is reported on the bar (Invalid pattern) instead of throwing; an empty query clears all hits.
  • Closing restores focus to whatever was focused before the bar opened and clears both highlight layers.
  • Searched: everything rendered in the conversation column — user messages, assistant prose, reasoning, tool calls and output, command rows, and collapsed content. Skipped: the composer draft, / / / content, and anything marked data-chat-search-skip.
  • Not searched: turns of history that have not been paged into the DOM yet (see Limitations).