从 ClaudeCode 和 OpenCode 会话中提取对话历史和代码变更,用于 AI 编程后的代码恢复和审查。
当 AI 编码助手修改代码导致项目出现问题时,CodeRewind 可以帮助你恢复代码,它能提取:
- 完整对话历史
- 所有文件编辑(oldString → newString)
- 新建文件内容
数据直接从两个工具的原生存储格式中提取。
git clone https://github.com/chenflux/CodeRewind.git
cd CodeRewind仅需 Python 3.7+,无需外部依赖。
# 查看可用会话
python extract_session.py list
# 提取项目在时间范围内的所有会话
python extract_session.py extract -p ClamAI -s 2026-05-09T00:37:31 -e 2026-05-09T22:44:00
# 从指定目录提取(精确匹配)
python extract_session.py extract --dir "D:\Projects\MyProject"python extract_session.py list [-p PROJECT] [--dir PATH]| 选项 | 说明 |
|---|---|
-p, --project |
按项目名称过滤(匹配 directory 或 title) |
--dir |
按完整目录路径过滤(精确匹配) |
python extract_session.py extract [OPTIONS]| 选项 | 说明 |
|---|---|
-o, --output |
输出目录(默认:./extracted) |
-s, --start |
开始时间(ISO 格式) |
-e, --end |
结束时间(ISO 格式) |
-p, --project |
按项目名称过滤(模糊匹配) |
--dir |
按完整目录路径过滤(精确匹配) |
-S, --sources |
数据源:claudecode opencode(默认:两者都提取) |
# 提取多个数据源
python extract_session.py extract -p ClamAI -s 2026-05-09T00:37:31
# 仅提取 OpenCode 会话
python extract_session.py extract -S opencode -p ClamAI
# 从指定目录提取(处理同名项目)
python extract_session.py extract --dir "D:\Projects\ClamAI"每个会话保存为一个 JSON 文件,包含:
{
"source": "opencode_db",
"session_id": "ses_xxx",
"title": "会话标题",
"directory": "/path/to/project",
"time_created": "2026-05-09T10:30:00",
"conversations": [
{
"role": "user",
"content": "用户消息内容",
"timestamp": "2026-05-09T10:30:00",
"part_id": "prt_xxx"
}
],
"edits": [
{
"filePath": "src/main.go",
"oldString": "func old() {}",
"newString": "func new() {}",
"status": "completed",
"timestamp": "2026-05-09T10:31:00"
}
],
"writes": [
{
"filePath": "src/new.go",
"content": "package main\n...",
"status": "completed",
"timestamp": "2026-05-09T10:32:00"
}
]
}| 数据源 | 存储位置 |
|---|---|
| ClaudeCode | ~/.claude/projects/*.jsonl |
| OpenCode | ~/.local/share/opencode/opencode.db (SQLite) |
| 功能 | ClaudeCode | OpenCode |
|---|---|---|
| 格式 | JSONL | SQLite |
| 对话历史 | ✓ | ✓ |
| 编辑操作 | ✓ | ✓ |
| 文件写入 | ✓ | ✓ |
| 推理过程 | - | ✓ |
代码恢复, AI编程, 会话提取, ClaudeCode, OpenCode,
代码变更追踪, 开发回退, 对话历史导出, 代码审查
MIT