你的 AI 协作知识库 — 跨工具归档、跨会话查看、自我蒸馏的基础设施
如果你使用多个 AI 编程助手(Claude Code、Cursor、Codex、GitHub Copilot 等),你的对话记录会分散在不同的目录下,持续膨胀,占用大量磁盘空间。这些对话记录是宝贵的知识资产——包含决策过程、调试思路、验证过的方案——但缺乏统一的管理方式。
更重要的是,这些对话记录是你的个人知识库:
- 💡 每次调试都是一次学习,但如果不记录就会遗忘
- 🔄 相似问题会反复出现,但你可能想不起上次怎么解决的
- 📈 你的思维方式和工作模式都隐藏在这些对话中
- 🎯 这是构建个人AI助手、提炼方法论的第一手素材
AI Session Archiver 让你能够:
- 📦 统一归档:将所有工具的对话记录导出为标准 JSONL 格式
- 🔍 跨工具扫描:自动发现本机安装的 AI 工具及其存储位置
- 🧹 安全清理:删除已归档的旧对话,释放磁盘空间
- 🔒 幂等执行:重复运行不会重复归档,支持定期任务
- 🛡️ 安全优先:默认 dry-run,保护性删除,不会误删重要文件
- 统一格式的JSONL让你可以跨工具、跨时间检索所有对话
- 完整保留thinking/reasoning,不只是最终答案
- 支持按项目、时间、工具维度查看历史决策
- 每个会话都是一次问题解决过程的完整记录
- 可以回溯"为什么当时选择这个方案"
- 提炼出可复用的调试思路、架构决策、验证方法
- 当项目出问题时,快速定位"当时是怎么讨论的"
- 对比不同时期对同一问题的处理方式
- 识别重复出现的问题模式
- 这些对话是你独特的工作方式和思维模式
- 可以用于训练/微调个人化的AI助手
- 构建符合你工作习惯的知识图谱
| 工具 | 状态 | 存储位置 |
|---|---|---|
| Claude Code | ✅ 完整支持 | ~/.claude/projects |
| Codex CLI | ✅ 完整支持 | ~/.codex/sessions |
| Cursor IDE | ✅ 完整支持 | ~/.cursor/projects + SQLite |
| Cline (VSCode) | ✅ 完整支持 | %APPDATA%/Code/.../saoudrizwan.claude-dev/tasks |
| GitHub Copilot | 🔜 计划中 | 待调研 |
| OpenCode | 🔜 计划中 | 待调研 |
| OpenClaw | 🔜 计划中 | 待调研 |
| 其他工具 | 💡 欢迎贡献 | 见 CONTRIBUTING.md |
# Python 3.11+ 无需额外依赖
# Python 3.10 及以下需要安装 tomli
pip install tomli运行初始化脚本,自动检测本机 AI 工具并生成配置文件:
python scripts/init.py输出示例:
正在检测本机 AI 工具...
✅ 检测到 4 个工具:
- Claude Code (~/.claude/projects)
- Codex CLI (~/.codex/sessions)
- Cursor IDE (per-project agent transcripts)
- Cline VSCode
检测到的存储路径:
Claude Code (~/.claude/projects):
[✓] claude_projects: C:/Users/YOUR_USERNAME/.claude/projects
✅ 配置文件已生成: config.toml
查看本机有多少 AI 对话记录:
python scripts/archive_sessions.py --config config.toml scan -v输出示例:
Discovered 150 sessions across 4 tool(s):
[claude-code ] 47 sessions ( 78.8 MB)
[codex ] 28 sessions ( 482.1 MB)
[cursor ] 52 sessions ( 9.9 MB)
[cline-vscode ] 23 sessions ( 5.5 MB)
# 先 dry-run 看看会归档什么
python scripts/archive_sessions.py --config config.toml export
# 实际归档
python scripts/archive_sessions.py --config config.toml --apply export# 删除 15 天前的原件(已归档的)
python scripts/archive_sessions.py --config config.toml --apply prune --older-than 15# 扫描 + 归档 + 清理
python scripts/archive_sessions.py --config config.toml --apply run --older-than 15某个功能上线后出现bug,你想回顾当时的设计决策:
# 找到该项目的所有会话
grep -r "project-name" ~/ai-session-archive/
# 查看具体会话中的reasoning过程
jq 'select(.type=="assistant" and .thinking)' session.jsonl你发现自己在多个项目中用类似方法解决了某类问题:
# 搜索所有包含"性能优化"的会话
grep -l "性能优化" ~/ai-session-archive/**/*.jsonl
# 提取所有相关的工具调用和结果
jq 'select(.type=="tool_use" or .type=="tool_result")' *.jsonl你在Cursor写代码,在Claude Code做架构设计,在Codex做实验:
# 按时间线查看所有工具的对话
ls -lt ~/ai-session-archive/**/2026-04/*.jsonl
# 合并查看某个时间段的所有活动
cat ~/ai-session-archive/**/2026-04/*.jsonl | jq -s 'sort_by(.timestamp)'# 提取所有会话中的关键决策点
import json
decisions = []
for line in open('session.jsonl'):
event = json.loads(line)
if 'thinking' in event and '决定' in event['thinking']:
decisions.append(event)# 导出所有用户输入和AI响应对
jq -r 'select(.type=="user" or .type=="assistant") |
{role: .type, content: .content}' *.jsonl > training_data.jsonl# 统计本月的AI协作活动
find ~/ai-session-archive -name "2026-05*.jsonl" | wc -l
# 提取本月解决的主要问题
jq -r 'select(._archive_meta) | ._archive_meta.project' \
~/ai-session-archive/**/2026-05/*.jsonl | sort | uniq -c初始化脚本会自动检测本机安装的 AI 工具,无需手动配置路径。
- 默认 dry-run:不加
--apply永远不会写入或删除文件 - 幂等性保证:通过
manifest.jsonl避免重复归档 - 保护性删除:只删除已归档的会话,SQLite 等共享文件永不删除
- 错误隔离:单个工具失败不影响其他工具
每个会话归档为单个 JSONL 文件:
{"_archive_meta": {"tool": "claude-code", "session_id": "...", "started_at": "...", ...}}
{"timestamp": "...", "type": "user", "content": [...], "_file_role": "main"}
{"timestamp": "...", "type": "assistant", "content": [...], "_file_role": "main"}- 首行:会话元信息
- 后续行:事件流(用户输入、模型输出、工具调用等)
- 每行标注来源文件(
_file_role、_file_name)
配合系统任务计划程序,实现自动归档和清理:
Windows 任务计划程序:
python scripts/archive_sessions.py --config config.toml --apply run --older-than 15macOS/Linux cron:
0 3 * * 0 cd /path/to/ai-session-archiver && python scripts/archive_sessions.py --config config.toml --apply run --older-than 15| 场景 | 命令 |
|---|---|
| 初始化配置 | python scripts/init.py |
| 扫描会话 | python scripts/archive_sessions.py --config config.toml scan -v |
| 归档会话 | python scripts/archive_sessions.py --config config.toml --apply export |
| 清理旧会话 | python scripts/archive_sessions.py --config config.toml --apply prune |
| 一键完成 | python scripts/archive_sessions.py --config config.toml --apply run |
| 只处理某个工具 | python scripts/archive_sessions.py --tool claude-code --apply export |
| 自定义归档路径 | python scripts/archive_sessions.py --vault ~/backup --apply export |
~/ai-session-archive/
├── manifest.jsonl # 归档索引(幂等键)
├── claude-code/
│ └── 2026-04/
│ └── project-name__session-id.jsonl
├── codex/
│ └── 2026-02/
│ └── session-id.jsonl
├── cursor/
│ └── 2026-04/
│ └── project-name__session-id.jsonl
└── cline-vscode/
└── 2026-02/
└── timestamp.jsonl
欢迎贡献新工具的支持!查看 CONTRIBUTING.md 了解如何:
- 添加新工具的 adapter
- 提交 bug 报告
- 提出功能建议
A: 不会。export 命令只归档,不删除。只有 prune 命令会删除已归档的原始文件,且必须加 --apply 才会实际执行。
A: 归档文件保存在 vault 目录中,可以手动查看或导入。但原始文件一旦删除无法恢复,建议先备份 vault 目录。
A: 不支持。本工具只处理本地存储的会话记录。云端会话需要从浏览器或官方 API 导出。
A: 查看 CONTRIBUTING.md 中的 Adapter 开发指南。
如果这个工具对你有帮助,请给个 ⭐️ Star!