跨终端 Claude 配置与记忆同步体系
跨终端 Claude 配置与记忆同步体系设计文档:两台 Windows 电脑之间同步 Claude Code 完整工作环境的架构、原理与设计决策。一、目标在两台电脑之间保持 Claude Code 工作环境一致:同步内容载体方式全局行为规则CLAUDE.md同步脚本主配置settings.json/settings.local.json同步脚本跨会话记忆claude-mem.db(二进制)同步脚本内置记忆memory/*.md同步脚本每日对话记录daily.md同步脚本Skill 源码ai-skills/(仓库内)gitSkill 管理工具skill-mgr.sh随仓库 git 流转换电脑只需两条命令,记忆自动同步。二、总体架构┌───────────────────────────────────────────────────────┐ │ Gitee 远程仓库 │ │ │ │ ai-skills/ claude-sync/ ← 同步中枢 │ │ (50+ skill 源码) ├─ CLAUDE.md │ │ ├─ settings.json │ │ ├─ settings.local.json │ │ ├─ claude-mem.db │ │ ├─ sync.sh (pull/push) │ │ ├─ skill-mgr.sh │ │ ├─ memory/*.md │ │ ├─ daily.md │ │ └─ docs/ │ │ │ │ plugins/ tools/ │ └───────────────────────────────────────────────────────┘ │ git pull/push │ git pull/push ▼ ▼ ┌──────────┐ ┌──────────┐ │ 电脑 A │ │ 电脑 B │ │ ~/.claude/│ │ ~/.claude/│ │ ~/.claude │ │ ~/.claude │ │ -mem/ │ │ -mem/ │ └──────────┘ └──────────┘所有同步内容通过claude-sync/目录中转,双向流动。仓库是唯一权威源。三、同步机制3.1 同步内容源路径方向说明~/.claude/CLAUDE.md↔ 仓库全局规则~/.claude/settings.json↔ 仓库主配置~/.claude/settings.local.json↔ 仓库本地权限配置~/.claude/projects/*/memory/↔ 仓库内置记忆(自适应路径)~/.claude-mem/claude-mem.db↔ 仓库插件数据库(二进制)claude-sync/skill-mgr.sh仓库内Skill 管理工具(随 git 流转)claude-sync/sync.sh仓库内同步脚本(随 git 流转)claude-sync/daily.md仓库内每日记录(增量合并)claude-mem-settings.json已排除——含本地路径,不同电脑不同值。冲突处理:文本文件用 git merge 真合并,冲突时标注/,手动选择保留哪边。二进制文件(.db)无法逐行合并,push 时若冲突,比较 ours vs theirs 文件大小取更大者——数据库只追加不删,文件大小更能反映数据完整度。本地保护:拉取时若本地文件比同步目录更新(内容不同且修改时间更晚),默认跳过覆盖,防止覆盖本地未推送的修改。sync.sh pull --force可强制覆盖。3.2 同步流程pull 流程(4 步):[1/4]git pull 拉取远程 →[2/4]复制配置到本地(含is_local_newer保护)→[3/4]复制内置记忆 →[4/4]复制 claude-mem 数据 → 三方一致性校验。push 流程(5 步):[1/5]本地文件复制到claude-sync/→[2/5]git pull 拉取远程并 merge →[3/5]合并结果回写到本地源文件 →[4/5]git commit →[5/5]git push → 三方一致性校验。关键设计:push 步骤 [3/5] 把 merge 后的结果回写到本地~/.claude/和~/.claude-mem/,确保本地文件也包含了远程的更新。单次 push 同时完成"上传本地 + 下载远程"的双向同步。对话前: sync.sh pull ←── Gitee 对话前: sync.sh pull ←── Gitee │ │ 每条回复: 自动保存 daily.md 每条回复: 自动保存 daily.md │ (时间倒序,新条目插入正确位置) │ (时间倒序,新条目插入正确位置) │ │ 对话后: sync.sh push ──→ Gitee 对话后: sync.sh push ──→ Gitee (含 merge 回写) (含 merge 回写)daily.md 每条回复后自动写入- HH:MM 简短描述。当日条目按时间倒序(最新在上)。脚注通过时间戳对比判定保存状态。3.3 三方一致性校验verify_three_way在 pull