cross_agent_session_resumer
跨17+主流AI编码工具(Claude/Codex/Gemini等)的会话迁移工具,通过Canonical IR实现会话历史在任意平台恢复
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
跨17+主流AI编码工具(Claude/Codex/Gemini等)的会话迁移工具,通过Canonical IR实现会话历史在任意平台恢复
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
周一早上,你打开电脑,准备继续上周在 Claude Code 中进行的大型重构项目。那段花了整整两天才调试好的多态工厂模式,那段反复优化过的数据库连接池配置——都静静地躺在你的 Claude Code 会话历史里。
但现在,你的团队决定迁移到 OpenAI 的 Codex 平台。Claude Code 的会话文件是 .jsonl 格式,Codex 用的是另一套加密存储。你眼睁睁看着两周的工作记录变成了一堆无法迁移的"数据孤岛"。
重新开始?太痛苦了。手动复制粘贴?丢失上下文,AI 根本不知道你之前解决了什么问题。
这就是 casr(Cross Agent Session Resumer)要解决的核心问题。

casr 诞生于一个更大的 AI 开发者工具生态系统——Flywheel。
作者 Dicklesworthstone 是一名在纽约对冲基金工作过的前量化分析师,从 2010 年开始深度学习实践,2023 年开始多智能体系统开发。他发现自己在日常工作中会同时使用 Claude Code、Codex、Cursor、Gemini CLI 等多种 AI 编码工具,但每个工具的会话历史互相隔离,无法互通。
于是他开始构建一套工具链来解决这个问题:casr 是其中最关键的一环——负责会话的跨平台恢复。在此之前,他还构建了 cass(Coding Agent Session Search,会话搜索),之后又构建了 cass_memory_system(跨 Agent 持久记忆)等工具。
这一工具链在 GitHub 上获得了相当高的关注——Flywheel Hub Discord 已有约 999 名成员。
casr 的设计哲学是"Provider 可替代性 > 锁定"。
它的核心工作流非常清晰:
Canonical IR 是整个系统的核心抽象。它将所有 Provider 的会话数据统一建模为消息序列,包含角色(用户/助手/系统)、时间戳、内容等字段。这一设计使得添加新 Provider 的成本降到最低——只需要实现 Read 和 Write 两个方法。
目前 casr 支持 18 种主流 AI 编码工具,覆盖了市面上绝大多数主流选择:
| 类型 | Provider | 支持情况 |
|---|---|---|
| ⭐ 头部 | Claude Code, Codex, Gemini CLI | 读写完整 |
| 热门 IDE | Cursor, Cline, Aider, Amp | 读写完整 |
| 新兴工具 | OpenCode, ChatGPT, OpenClaw | 读写完整 |
| 其他 | Vibe, Factory, ClawdBot, Pi-Agent, Kiro CLI, Grok Build, Antigravity | 大部分读写 |
每种 Provider 的会话存储位置和格式各异——Claude Code 用 .jsonl,Aider 用 Markdown 文件,Cursor 用多会话文件,ChatGPT 用网页端 UUID——casr 通过各自的 Provider 实现屏蔽了这些差异。
casr 选型 Rust 并非偶然。作者在 AGENTS.md 中明确声明"禁止删除文件"等安全规则,项目的代码质量也体现了这种谨慎态度。
架构亮点:
src/providers/ 目录下每个 Provider 独立一个 .rs 文件,通过 Provider trait 统一接口rayon 实现并行会话扫描和处理rusqlite(bundled SQLite)存储会话索引clap(带 derive 宏)提供完整的 CLI 选项、tab 补全支持tracing + tracing-subscriber 实现结构化日志,支持 RUST_LOG 环境变量控制日志级别构建优化(见 Cargo.toml release profile):
opt-level = "z" + lto = true + codegen-units = 1 + panic = "abort" + strip = trueRust Edition 2024:项目使用 Rust 2024 edition,这是 Rust 目前的最新 edition,表明作者积极跟进 Rust 最新特性。
casr 提供了一条极其顺畅的安装路径:
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/cross_agent_session_resumer/main/install.sh?$(date +%s)" | bash
安装脚本会:
casr skill 和快捷命令别名安装后,工作流程非常直观:
# 查看可用的 Provider
casr providers
# 列出所有会话
casr list --limit 20 --sort date
# 查看某个会话的详情
casr info <session-id>
# 将会话转换为 Claude Code 格式
casr resume cc <session-id>
# 快捷方式(自动识别来源 Provider)
casr -cc <session-id> # 在 Claude Code 中打开
casr -cod <session-id> # 在 Codex 中打开
casr -gmi <session-id> # 在 Gemini CLI 中打开
需要注意的是,casr 只能迁移可见的对话内容,无法迁移各 Provider 的内部思维过程(thinking):
这意味着跨平台恢复后,Agent 仍需要重新"思考"一些之前已经推理过的步骤。作者在 HackerNews 的讨论中也坦诚承认了这一点。
此外,不同 Provider 的工具集差异也会导致迁移后某些工具调用失败——比如 Claude Code 的 /read 命令在 Codex 中没有对应实现。
casr 不仅仅是一个工具,更是 AI 编码工具走向互操作性的基础设施。
当前 AI 编码工具市场正处于激烈竞争阶段:Anthropic 的 Claude Code、OpenAI 的 Codex/Codex CLI、Google 的 Gemini CLI、Cursor 的 AI 功能……每个工具都有各自的优势,用户经常需要在不同工具之间切换。
casr 的出现,使得用户的会话历史从一个平台的"锁定资产"变成了可移植的生产力资产。这对于推动 AI 编码工具的健康发展、降低用户迁移成本具有重要意义。
该项目还衍生出了多个相关工具:cass(会话搜索)、cass_memory_system(跨 Agent 持久记忆)、ultimate_bug_scanner(AI 原生代码质量扫描)——共同构成了一个完整的 AI 开发者工作流工具链。
总结:如果你同时使用多个 AI 编码工具,casr 是那种"用了就回不去"的工具。它以 Rust 的性能和工程严谨性,解决了 AI 编码工具领域一个非常具体的痛点:会话数据的互操作性。