在 pi 中输入 @ 按标题模糊匹配本机 Codex CLI 会话,选中后插入引用,并通过配套 skill 读取该会话的上下文。
@标题模糊匹配:输入@测试环境即可匹配到标题含"测试环境"的 Codex 会话(如「梳理测试环境接入要求」)- 排除已归档:默认只匹配未归档(
archived=0)的会话 - 最近优先:空输入时展示最近更新的会话;匹配结果按更新时间辅助排序
- 插入引用 + 自动读取:选中后插入
[@标题](codex://threads/<id>),配套codex-sessionskill 指导模型解析 rollout 文件、提取会话上下文(标题、工作目录、git 分支、用户提问、最终总结)
# 方式一:npm 包(推荐)
pi install npm:pi-codex-session
# 方式二:Git 仓库
pi install git:github.com/toosean/pi-codex-session或手动放置:
# 扩展
cp extensions/codex-session-autocomplete.ts ~/.pi/agent/extensions/
# skill
cp -r skills/codex-session ~/.pi/agent/skills/然后在 pi 中执行 /reload 生效。
包通过 GitHub Actions + npm Trusted Publishing (OIDC) 自动发布到 npm,不需要 token 或 2FA。
发布新版:
npm version patch # 或 minor / major
npm publish --dry-run # 可选:本地预览
git push origin main --tags推送 v* tag(或在 GitHub 页面手动触发 publish-npm workflow)后自动发布。
- 包名:
pi-codex-session - 画廊: pi.dev/packages
-
在 pi 输入框输入
@加关键词(如@测试环境) -
从候选列表中选择会话(↑↓ 移动,Enter 确认)
-
输入框自动插入:
[@梳理测试环境接入要求](codex://threads/019fc30b-668e-79c1-a426-84c8acbd56e6) 请用 codex-session skill 读取该会话的上下文 -
模型会调用
codex-sessionskill 读取对应会话的 rollout 文件,提取并总结上下文
| 组件 | 位置 | 职责 |
|---|---|---|
| 扩展 | extensions/codex-session-autocomplete.ts |
@ 触发补全,读取 Codex 会话元数据并模糊匹配标题 |
| skill | skills/codex-session/SKILL.md |
指导模型定位 rollout 文件、解析 JSONL、输出结构化摘要 |
扩展按优先级读取:
~/.codex/state_5.sqlite→threads表(主数据源,含标题/工作目录/git 分支/更新时间,用 Node 内置node:sqlite读取,零外部依赖)~/.codex/session_index.jsonl(兜底)
- 只匹配
archived = 0且标题非空的会话 - 使用
fuzzyFilter按标题模糊匹配 - 结果按
updated_at倒序展示
pi-codex-session/
├── README.md
├── package.json # pi 包 manifest(pi-package)
├── extensions/
│ └── codex-session-autocomplete.ts
└── skills/
└── codex-session/
└── SKILL.md
# 本地验证数据层(sqlite 读取 + fuzzy 匹配)
node --experimental-strip-types extensions/codex-session-autocomplete.tsMIT