跳过主要内容
X

dsh-chat-search

xvbenny/dsh-chat-search

DSH 对话全文搜索:解压持久化的 session.v4.jsonl.zstd 会话日志,匹配用户与助手消息正文,点击结果跳转到对应会话并定位消息(归档会话会先取消归档)。支持 Ctrl+F 唤起。

安装

dsh plugin --profile web add github:xvbenny/dsh-chat-search

README

Full-text search over your DeepSeek Harness conversation history, with click-to-jump results.

DSH's built-in Ctrl+K search only matches session titles. This plugin searches the full message bodies of every stored conversation and opens the matching session at the matching message.

Features

  • Full-text search across all workspaces and sessions (archived included)
  • Results grouped by session, with keyword highlighting and workspace name
  • Click a hit to open its session and scroll to / flash the message
  • Archived sessions are unarchived and opened (the DSH UI service has no "open archived in place" action)
  • Case-insensitive literal substring matching (no regex)
  • Read-only, local-only: message bodies never leave your machine

Install

# GitHub
dsh plugin --profile desktop add github:XvBenny/dsh-chat-search

# Gitee mirror (faster in mainland China)
dsh plugin --profile desktop add https://gitee.com/vrgu/dsh-chat-search.git

or from a local checkout:

dsh plugin --profile desktop add ./dsh-chat-search

Restart DSH after installing.

Use

  1. Press Ctrl+F (Cmd+F on macOS) anywhere in the DSH Web GUI, or click the magnifier icon of the 对话搜索 / Chat Search panel in the right sidebar.
  2. Type a keyword and press Enter.
  3. Click any hit to jump to that message.

How it works

Message bodies are not stored in the projection cache; they live in the per-session session.v4.jsonl.zstd logs under $DSH_HOME/sessions/<workspace>/<sessionId>/. The host half decompresses those zstd frame sequences and matches user/message and assistant/message text.

The browser half registers a sidebar.panellist slot. On click it opens the session through the harness UI service (uiWorkspace.openSession, with unarchiveSession for archived sessions) and then scrolls to the matching message row using the chat DOM anchors.

Limits

  • Only user/assistant message prose is searched — reasoning, tool calls and tool results are excluded.
  • Literal substring match; no regex, fuzzy, or semantic search.
  • Archived results are unarchived when opened (the session leaves the archive).

License

MIT

相关插件