从 Claude Code 会话中导出上下文,用统一格式保存,并注入新会话, 让 agent 具备跨会话记忆能力。调研参考了 cavemem 和 entire/cli 两个项目。
export.py— 手动把单个 transcript jsonl 解析成统一格式(调试用)hook_export.py— Stop hook:会话结束时自动导出到 ~/.ctx/sessions/inject.py— SessionStart hook:新会话启动时注入本项目最近一次会话的摘要
每个会话导出为一个 JSON,字段:schema_version, agent, session_id, project_dir, model, started_at, ended_at, turns, files_touched。 turns 里区分 user / assistant / tool_result 三种角色。
在 ~/.claude/settings.json 的 hooks 中注册 Stop 和 SessionStart 两个 hook, 分别指向 hook_export.py 和 inject.py。
- 目前只支持 Claude Code 一种 agent,统一格式尚未跨 agent 验证
- 注入策略是"取最近一次会话",未做相关性检索或压缩
- tool_result 截断到 300 字符