omp packages

pi-session-mentions0.1.2

Search and reference local Pi, Claude Code, and Codex conversations from Pi.

GitHub Actions Published 1 day ago MIT ~374 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

pi-session-mentions

English

在 Pi 消息中引用本机的 Pi、Claude Code 和 Codex 会话。

输入 @@ 查看最近会话,继续输入关键词即可筛选。用方向键选择,按 Tab 或 Enter 插入,再正常发送消息。多个关键词用引号包住,例如 @@"构建 缓存"。

只有发送已选中的引用时才增加模型上下文。

普通 @ 文件菜单只增加一个 Sessions 入口,选中后插入 @@。会话使用 独立候选列表,每行显示标题、来源、项目和日期。用方向键可继续滚动查看全部匹配, 文件候选保留原有顺序。

安装

需要 Pi 1.2.0 或更高版本,以及 Node.js 22.19.0 或更高版本。通过 npm 安装:

pi install npm:pi-session-mentions

已有 Pi 会话执行 /reload。这是全局安装,所有项目都可使用。运行时只依赖 Pi 和 Node.js,不需要安装或运行 ah。

搜索范围

用简短前缀选择来源:

前缀 会话来源
@@ 或 @@all: 全部
@@cc: Claude Code
@@cx: Codex
@@pi: Pi

前缀后直接输入关键词,例如 @@cx:cache、@@cc:"构建 缓存"。 输入 @@: 可打开 All、CC、CX、Pi 四项来源菜单,按 Tab 或 Enter 填入前缀后, 继续输入关键词,或再按 Tab 浏览该来源的会话。输入 @@c 也会提示 CC 和 CX。

匹配标题、用户消息、项目路径和会话 ID,不区分大小写,支持中文。 多个关键词必须全部匹配。优先显示标题匹配的会话,再考虑当前项目和最近活动时间。 排除当前会话及子代理会话。

不索引助手回复、工具输出和思考内容,以减少索引大小及生成文本带来的干扰。

后台线程建立索引并缓存未变化的文件。首次扫描期间,状态栏显示已索引的会话数; 扫描完成后显示候选列表,并清除进度提示。期间可以继续输入。 已有完整缓存时,加载缓存后即可显示结果。后续文件刷新在后台执行, 搜索时最多每 15 秒触发一次。输入时查询内存索引,不调用模型,也不使用向量索引。

搜索耗时取决于索引文本量和匹配数量。后台线程在内存中保留用户文本, 因此内存占用随历史会话量增加。首次无缓存扫描还需要读取源文件。 切换或关闭 Pi 会话时,会停止后台线程并释放索引。

来源 默认会话目录 环境变量
Pi ~/.pi/agent/sessions/ PI_CODING_AGENT_DIR、PI_CODING_AGENT_SESSION_DIR
Claude Code ~/.claude/projects/ CLAUDE_CONFIG_DIR
Codex ~/.codex/sessions/、~/.codex/archived_sessions/ CODEX_HOME

使用 Pi 自定义会话目录时,也会纳入当前目录。没有设置面板或额外命令。

实际发送的内容

选中会话后,输入框中插入一段带标题的引用。发送时,将其替换为编号引用, 并附上来源工具、项目目录、原始文件路径和精简文本的本地路径。 同一消息多次引用同一个会话,只附加一份说明。

精简文本按 user:、assistant: 保存对话及来源信息,去除工具调用、工具结果、 图片、系统指令和思考内容。原会话保持不变,每次导出生成独立快照, 原会话后续变化不会改变已经发出的引用。

初始消息只携带引用与路径。模型通过文件工具按需读取精简文本,因此初始 token 成本较低;后续读取对话仍然消耗 token。模型需要可用的本地文件读取工具。

代码块、行内代码及用 \ 转义的引用保持原样。源文件无法读取时,会在发送的消息 中明确说明。原有图片附件会保留。

Pi 导出采用最后记录的会话分支,Claude Code 按父消息关系读取,Codex 应用已记录的 回退操作。分支中的上游记录缺失时,文本会明确标注历史不完整。若导出期间源文件 发生变化,需要等当前写入完成后重新选择。

本地数据

搜索索引保存在 ~/.pi/agent/session-mentions/,也会遵循 PI_CODING_AGENT_DIR。文本快照保存在 /tmp/pi-sessions-mentions/。 两者都包含私有对话文本,目录和文件仅允许当前用户访问。搜索不会将数据发送到 独立服务;模型读取引用后,相关文本仍可能发送到模型提供商。这个扩展不负责敏感信息脱敏。

每次发送会话引用都会重新生成文本快照,同一条消息多次引用同一会话时共用一份。 删除搜索索引后会自动重建。临时快照被手动删除或系统清理后,旧消息中的文件路径 将无法读取;重新选择并发送会话即可生成新的快照。原始会话文件不会被修改。

开发

在仓库根目录执行:

npm install
npm run check --workspace pi-session-mentions

MIT 许可证,见 LICENSE。