关于 session-index
session-index 是用于搜索和分析 Claude Code 会话 SQLite 索引的技能,帮助用户查找过往讨论、查看对话内容,并梳理多个会话中的尝试。
主要功能
- 01全文搜索会话
- 02读取对话上下文
- 03分析耗时与工具使用
- 04按元数据和环境筛选
- 05指导跨会话归纳
适用场景
- 01查找某主题的过往讨论
- 02回看某次会话中的交流
- 03按客户或周统计耗时
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cearley/ claude-session-index --skill session-index安装后在 Claude Code 中输入/session-index确认已加载。
详细介绍
会话索引技能
你可以使用会话索引——一个 SQLite 数据库,其中通过 FTS5 对所有 Claude Code 会话进行全文搜索。每当用户询问过往会话、之前的对话,或想知道自己以前尝试过什么时,都要使用它。
用户的交互界面就是这段对话。 用户会自然地提问(“我们最近不是聊过浏览器控制吗?”),你将其转换为 CLI 命令,并以对话方式呈现结果。他们不应该需要了解 CLI 语法。
如何处理会话查询
1. 从问题中提取关键词
用户说:“我们最近不是聊过浏览器控制吗?”
你搜索:sessions "browser control"
用户说:“我尝试过哪些表单自动化方案?”
你搜索:sessions "form automation"
用户说:“我这周在 Acme 上花了多少时间?”
你运行:sessions analytics --client "Acme" --week
2. 通过 Bash 运行相应命令
搜索——按主题查找会话:
sessions "relevant keywords"
sessions "relevant keywords" --context # includes conversation excerpts
上下文——读取会话中的实际对话:
sessions context <session_id> "search term" # exchanges matching a term
sessions context <session_id> # all exchanges
分析——工作量、时间、工具使用情况:
sessions analytics # overall
sessions analytics --client "Acme" # per client
sessions analytics --week # this week
sessions analytics --month # this month
sessions analytics --env personal # one Claude environment
筛选——按元数据查找会话:
sessions find --client "Acme" # by client
sessions find --tool Task --week # by tool + date
sessions find --project myapp # by project
sessions find --week --env work # by date + environment
sessions recent 20 # last N sessions
sessions recent --env personal # one Claude environment
sessions recent --env current # active CLAUDE_CONFIG_DIR environment
如果用户提到特定的 Claude 环境(个人、工作、bedrock 等),添加 --env <name> 以限定结果范围。--env current 会在运行时解析为 CLAUDE_CONFIG_DIR。所有 find、recent 和 analytics 命令都接受 --env。
3. 综合归纳(“什么方法有效?”、“我尝试过什么?”)
这是最有价值的功能。当用户提出的问题涉及多个会话时:
- 搜索:
sessions "topic" -n 10 - 提取排名前 3-5 个结果的上下文:
sessions context <id> "topic" -n 3 - 启动一个
model="haiku"的 Task 进行综合归纳:- 尝试过哪些方法?
- 哪些有效/哪些失败了?
- 有哪些反复出现的模式?
- 当前进展如何?
- 以对话方式呈现综合结果,并为每个来源会话提供
claude --resume <id>链接
这会使用会话内的 Haiku 子 Agent——不需要外部 API 密钥。
4. 以对话方式呈现结果
不要直接输出原始 CLI 结果。请总结:
- “你上周在 3 个会话中讨论过浏览器控制……”
- “主要有效的方法是……”
- 添加
claude --resume <session_id>链接,方便用户跳回对应会话 - 如果上下文相关,请引用关键对话
安装
uv tool install git+https://github.com/cearley/claude-session-index
首次运行任何命令时,会自动为所有现有会话建立索引。
**多个 Claude 环境:**会自动发现并索引同级的 ~/.claude-*/projects 目录,以及默认的 ~/.claude/projects,无需任何配置。若要为其他目录集合建立索引,请将 SESSION_INDEX_PROJECTS 设为以冒号分隔的 projects/ 目录列表,或在 ~/.session-index/config.json 中添加 projects_dirs(列表):
export SESSION_INDEX_PROJECTS=~/.claude-personal/projects:~/.claude-work/projects
也可以重复使用 --projects-dir 标志进行临时覆盖:
sessions --projects-dir ~/.claude-personal/projects --projects-dir ~/.claude-work/projects index
每个会话都会带有 env:<name> 标签(根据其来源目录路径生成)。
数据位置
- 数据库:
~/.session-index/sessions.db - 主题:
~/.claude/session-topics/ - 配置:
~/.session-index/config.json(可选)