AI Chat Sync 是一个面向 Windows 的开源桌面工具,用来解决多台电脑之间的 Codex 聊天记录和相关工作环境同步问题。
当前版本只实现 Codex Adapter,但核心同步模型和 Adapter 边界为后续支持其他 AI GUI 客户端保留了扩展空间。
本项目不是 OpenAI 官方产品,也不隶属于 OpenAI。Codex 是其相应权利人的产品名称。
Codex 的聊天记录、项目归属、Skills 和 MCP 配置通常保存在本机。换电脑、重装系统或在台式机与笔记本之间切换时,单纯复制文件容易遇到路径变化、项目误匹配、文件冲突和敏感配置泄露等问题。
AI Chat Sync 使用用户自己的私有 Git 仓库作为同步中转站,为每台设备保存独立快照,并在恢复前执行项目映射和安全检查。
- 扫描 Codex 会话、归档会话、问答轮次和会话详情;
- 通过 Git 增量同步聊天记录、项目元数据和 Skills;
- 为每台设备使用独立目录,减少多设备同时同步时的路径冲突;
- 根据 Git 远端、仓库内相对路径和用户确认的映射,处理不同电脑上的项目目录;
- 将无项目会话保存为相对路径,并恢复到另一台电脑配置的无项目根目录;
- 关闭 Codex 后才允许写入原生 JSONL、
session_index.jsonl和 SQLite 数据; - 对跨设备修改冲突进行提示,不静默覆盖本机内容;
- 可选择只同步聊天记录,或同时同步 Skills、MCP 配置和 MCP 授权材料;
- MCP 敏感材料进入本地加密保险库,
auth.json永不上传; - 提供 Windows 便携版构建流程,不要求安装器或云端服务。
本项目默认面向“用户自己的私有 Git 仓库”。应用不会替用户托管数据,也不会把聊天内容发送到 AI Chat Sync 的服务器。
- 同步数据仓库必须与本源码仓库分开;
- Git 凭据由 Git Credential Manager 或 SSH 管理,应用不保存 Git 密码和私钥;
- Codex 主账号
auth.json不加入快照; - MCP Cookie、Token、API Key 和登录材料不会以明文写入同步仓库;
- 加密口令使用 Windows DPAPI/Electron
safeStorage保护; - 首次配置会先拉取和合并远端数据,未完成项目映射、冲突处理或 Codex 关闭检查时不会写入本机;
- 路径恢复只使用项目映射和相对路径改写,不直接写入另一台电脑的绝对路径。
请不要把真实聊天记录、Token、Cookie、API Key、auth.json 或同步数据仓库提交到本源码仓库,也不要在 Issue 或 Pull Request 中粘贴这些内容。
每次推送到 main、创建 Pull Request 或手动运行 GitHub Actions 后,工作流会在 Windows runner 上执行检查并生成便携版,构建目录会上传到对应运行页面的 Artifacts 中。
正式发布版本通过 v* 标签触发同一套 Windows 构建流程。标签构建成功后,工作流会自动创建 GitHub Release,并附带 Windows 便携版 ZIP 和 SHA-256 校验文件。
-
将
.github/workflows/build-windows.yml和源码提交到main; -
打开 GitHub 仓库的 Actions,选择 Build Windows portable;
-
推送到
main、创建 Pull Request,或点击 Run workflow 手动运行; -
普通构建在运行详情底部下载
AI-Chat-Sync-windows-*Artifact; -
正式发布时创建并推送版本标签,例如:
git tag v1.0.6 git push origin v1.0.6
-
标签构建成功后,在仓库的 Releases 页面下载 ZIP;解压后运行
AI Chat Sync.exe。
推送 v1.0.6 这类 v* 标签会触发构建和自动发行;同一标签不会重复创建第二个 Release。
前置条件:
- Windows;
- Git for Windows;
- 已安装并使用 Codex;
- Node.js 22 或更高版本;
- pnpm 11.9.0 或更高版本。
pnpm install
pnpm dev执行类型检查和生产构建:
pnpm typecheck
pnpm build生成 Windows 便携版:
pnpm package:win输出位于 release/。本地构建脚本会清理旧的发布产物,只保留最近一次成功构建。
- 准备一个与源码仓库分开的私有 Git 仓库作为同步数据仓库。
- 在 AI Chat Sync 中配置远端地址和本机同步目录。
- 设置足够强的 MCP 加密口令;口令至少 12 个字符,并在所有设备上保持一致。
- 首次同步先拉取远端,再处理项目映射和本地恢复。
- 恢复 Codex 原生数据前关闭 Codex;出现项目待处理或会话冲突时,先在界面完成决策。
同步数据仓库的典型结构如下:
.aichatsync/schema.json
devices/<device-id>/
manifest.json
conversations/<conversation-id>.jsonl
projects/<project-id>.json
skills/
mcp/inventory.json
settings/shared.json
vault/mcp-secrets.aics
src/adapters/codex/ Codex 本地数据发现、解析和原生恢复
src/core/ 跨客户端同步模型和路径映射规则
src/main/ Electron 主进程、Git 同步和本地存储
src/preload/ 主进程与渲染层之间的安全桥接
src/renderer/ React 桌面界面
scripts/ Windows 便携版构建脚本
- 当前只支持 Windows 和 Codex;
- 当前同步依赖用户提供的 Git 远端,不包含托管服务;
- 项目路径变化仍可能需要用户确认;
- Codex 运行期间不会执行原生恢复或覆盖写入;
- MCP 服务的本机可执行文件、环境变量和操作系统授权仍需要在目标设备上适配。
两台或多台 Windows 电脑通过用户指定的私有 Git 仓库同步 Codex 会话、项目元数据、Skills 和可选的 MCP 数据。每台电脑使用自己的本地 Git 目录,本机项目路径不会作为另一台电脑的绑定结果直接上传。
一次同步按以下顺序执行:
- 验证 Git、远端地址、本地目录和固定同步分支;
- 拉取远端并读取其他设备的
manifest.json; - 读取 Codex 原生项目归属、会话项目归属和明确的无项目记录;
- 按 Git 身份、仓库内相对路径、已确认的目录前缀关系和项目名匹配本地项目;
- 仅把无法唯一匹配的远端项目放入待处理列表;
- Codex 关闭且通过项目门禁后,恢复可安全落地的远端会话;
- 扫描本机会话、Skills 和 MCP;
- 只更新当前设备的
devices/<device-id>快照; - 数据发生变化时提交并推送,未变化时不创建空提交。
每台设备只写自己的设备目录,正常的多设备交替同步不会修改同一 Git 路径。首次配置先合并远端数据,未完成项目映射、冲突处理或 Codex 关闭检查时,不会发布本机快照。
- Codex 原生项目归属和项目主目录优先于会话内可能过期的
cwd; - 同一 Git 远端会结合项目相对 Git 根的路径,避免把同一仓库内的不同子项目错误合并;
- 高置信度匹配或用户手动绑定后,可以学习“远端目录前缀到本机目录前缀”的关系;
- 位于无项目根目录下且不属于 Git 项目的会话,按相对路径同步到另一台设备的无项目根目录;
- 没有本机绑定、无项目或归档决策的普通远端项目,不允许直接写入 Codex;
- 跨设备恢复只重写结构化对象中的
cwd等已知工作目录字段,并限制在已确认的项目映射范围内。
- Git 拉取使用 rebase;无法自动 rebase 时停止同步,不强制覆盖远端历史;
- 单端延长的会话在本机文件自上次恢复后未变化时可以安全更新;
- 同一会话在两台设备都发生变化时,保留本机文件并记录双方哈希,等待用户选择;
- 项目状态冲突中,本机明确绑定优先;归档项目不会被远端自动重新激活;
- 本地同步目录存在未提交修改时停止同步,要求用户处理或重新克隆。
- 会话、项目元数据和 Skills 可以作为私有 Git 仓库中的普通文件;
- MCP 配置、
.env、Cookie、Token 和授权材料作为原子组进入加密.aics保险库; .aics口令只在本机由 ElectronsafeStorage/Windows DPAPI 保护;- Git 凭据由系统 Credential Manager 或 SSH 管理;
auth.json不加入同步快照;- 导入前要求 Codex 已关闭,目标路径必须位于已检测的 Codex 数据目录内。
请先阅读 CONTRIBUTING.md。提交 Bug 时不要上传真实聊天内容或敏感配置;安全问题请按照 SECURITY.md 的方式私下报告。
本项目采用 MIT License。
本软件首发于 LINUX DO 社区。