Claude History Search — 找回你和 Claude Code 的每一段对话

0 阅读3分钟

用了 Claude Code 三个月,积累了 400+ 会话、数万条消息。上周那个巧妙的 Hook 方案是怎么写的?上个月调的那个诡异 Bug 最后怎么解决的?翻遍文件夹也找不到——直到有了这个工具。

Snipaste_2026-03-31_23-36-27.png

痛点

Claude Code 把所有对话存在 ~/.claude/projects/ 下的 JSONL 文件里。几百个 UUID 命名的文件,没有标题,没有搜索,没有索引。想回溯一段对话?要么靠记忆找到 session ID 手动 claude --resume,要么一个个文件 grep。

Claude History Search 解决这个问题。

它能做什么

秒级全文搜索

输入关键词,即时搜索所有会话。支持中英文混合、多词 AND 匹配。搜索结果自动跳转到匹配的那条消息,关键词黄底高亮——不只是找到文件,而是精确定位到那句话

⌘G 在所有匹配结果间跳转,跨会话、跨页面,像在 IDE 里 Find Next 一样流畅。

语义搜索(本地运行)

记不清关键词?用自然语言描述:"上次讨论的 APK 逆向方案"、"关于数据库性能优化的建议"。

基于 Qwen3-Embedding-0.6B 模型,在你的 Mac 上本地运行(MLX + Metal 加速),不发送任何数据到云端。索引增量构建,支持断点续传——20000 条消息的索引,几分钟建好,之后每次只需编码新增的几十条。

原生 Qt 界面

不是 Electron,不是 Web。原生 C++ Qt6,QPainter 自绘聊天气泡,启动快、滚动顺滑、内存占用小。

  • 深色/浅色模式一键切换 (⌘T)
  • 超长消息自动折叠,搜索时只展示关键词上下文
  • Tool Result(命令输出、文件内容)也纳入搜索范围并显示
  • 一键复制 claude --resume <id>,直接回到那个会话继续对话

完整的快捷键体系

操作快捷键
搜索⌘F → 输入 → Enter
语义搜索⌘⇧F
下一个/上一个结果⌘G / ⌘⇧G
翻页⌘[ / ⌘]
复制 Resume 命令⌘⇧C
切换深色/浅色⌘T

安装

# Homebrew 一行安装
brew tap JuneLeGency/claude-history-search
brew install claude-history-search

或从源码编译(需要 Qt6 和 CMake):

git clone https://github.com/JuneLeGency/claude-history-search.git
cd claude-history-search/qt
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
open claude-his-search.app

技术亮点

  • C++ JSONL 解析器 — QtConcurrent 并行解析,400+ 会话秒级加载
  • 结构化内容提取 — 不只搜索聊天文本,还包括 tool_result(grep 输出、文件内容、编译日志等)
  • CJK 分词 — 中文全角标点作为搜索分词边界,中日韩文本精确匹配
  • 三重匹配策略 — 原始文本匹配 → normalize 匹配(-_/ 视为空格)→ searchText 匹配
  • 增量嵌入索引 — 每 5 个 batch 落盘一次,进程中断后从断点继续

它不做什么

  • 不修改你的 Claude 历史文件(只读)
  • 不发送数据到任何服务器(完全本地)
  • 不需要 Claude API Key(直接读本地文件)
  • 不需要 Python(除非你要用语义搜索)

开源

MIT 协议。代码在 GitHub


如果你也是 Claude Code 重度用户,试试看。找回那些被遗忘在 JSONL 里的灵感和方案。