mcpField
S
session-index

session-index

github.com/cearley生产力041 次安装12 周前更新
代码仓库

关于 session-index

session-index 是用于搜索和分析 Claude Code 会话 SQLite 索引的技能,帮助用户查找过往讨论、查看对话内容,并梳理多个会话中的尝试。

主要功能

  1. 01全文搜索会话
  2. 02读取对话上下文
  3. 03分析耗时与工具使用
  4. 04按元数据和环境筛选
  5. 05指导跨会话归纳

适用场景

  1. 01查找某主题的过往讨论
  2. 02回看某次会话中的交流
  3. 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. 综合归纳(“什么方法有效?”、“我尝试过什么?”)

这是最有价值的功能。当用户提出的问题涉及多个会话时:

  1. 搜索:sessions "topic" -n 10
  2. 提取排名前 3-5 个结果的上下文:sessions context <id> "topic" -n 3
  3. 启动一个 model="haiku" 的 Task 进行综合归纳:
    • 尝试过哪些方法?
    • 哪些有效/哪些失败了?
    • 有哪些反复出现的模式?
    • 当前进展如何?
  4. 以对话方式呈现综合结果,并为每个来源会话提供 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(可选)

评论

支持 Markdown