Skip to content

Repository files navigation

AI Chat Sync

Windows build License: MIT

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 中粘贴这些内容。

使用方式

直接使用 GitHub 构建产物

每次推送到 main、创建 Pull Request 或手动运行 GitHub Actions 后,工作流会在 Windows runner 上执行检查并生成便携版,构建目录会上传到对应运行页面的 Artifacts 中。

正式发布版本通过 v* 标签触发同一套 Windows 构建流程。标签构建成功后,工作流会自动创建 GitHub Release,并附带 Windows 便携版 ZIP 和 SHA-256 校验文件。

维护者触发自动构建

  1. .github/workflows/build-windows.yml 和源码提交到 main

  2. 打开 GitHub 仓库的 Actions,选择 Build Windows portable

  3. 推送到 main、创建 Pull Request,或点击 Run workflow 手动运行;

  4. 普通构建在运行详情底部下载 AI-Chat-Sync-windows-* Artifact;

  5. 正式发布时创建并推送版本标签,例如:

    git tag v1.0.6
    git push origin v1.0.6
  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/。本地构建脚本会清理旧的发布产物,只保留最近一次成功构建。

首次配置建议

  1. 准备一个与源码仓库分开的私有 Git 仓库作为同步数据仓库。
  2. 在 AI Chat Sync 中配置远端地址和本机同步目录。
  3. 设置足够强的 MCP 加密口令;口令至少 12 个字符,并在所有设备上保持一致。
  4. 首次同步先拉取远端,再处理项目映射和本地恢复。
  5. 恢复 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 目录,本机项目路径不会作为另一台电脑的绑定结果直接上传。

一次同步按以下顺序执行:

  1. 验证 Git、远端地址、本地目录和固定同步分支;
  2. 拉取远端并读取其他设备的 manifest.json
  3. 读取 Codex 原生项目归属、会话项目归属和明确的无项目记录;
  4. 按 Git 身份、仓库内相对路径、已确认的目录前缀关系和项目名匹配本地项目;
  5. 仅把无法唯一匹配的远端项目放入待处理列表;
  6. Codex 关闭且通过项目门禁后,恢复可安全落地的远端会话;
  7. 扫描本机会话、Skills 和 MCP;
  8. 只更新当前设备的 devices/<device-id> 快照;
  9. 数据发生变化时提交并推送,未变化时不创建空提交。

每台设备只写自己的设备目录,正常的多设备交替同步不会修改同一 Git 路径。首次配置先合并远端数据,未完成项目映射、冲突处理或 Codex 关闭检查时,不会发布本机快照。

项目映射

  • Codex 原生项目归属和项目主目录优先于会话内可能过期的 cwd
  • 同一 Git 远端会结合项目相对 Git 根的路径,避免把同一仓库内的不同子项目错误合并;
  • 高置信度匹配或用户手动绑定后,可以学习“远端目录前缀到本机目录前缀”的关系;
  • 位于无项目根目录下且不属于 Git 项目的会话,按相对路径同步到另一台设备的无项目根目录;
  • 没有本机绑定、无项目或归档决策的普通远端项目,不允许直接写入 Codex;
  • 跨设备恢复只重写结构化对象中的 cwd 等已知工作目录字段,并限制在已确认的项目映射范围内。

冲突规则

  • Git 拉取使用 rebase;无法自动 rebase 时停止同步,不强制覆盖远端历史;
  • 单端延长的会话在本机文件自上次恢复后未变化时可以安全更新;
  • 同一会话在两台设备都发生变化时,保留本机文件并记录双方哈希,等待用户选择;
  • 项目状态冲突中,本机明确绑定优先;归档项目不会被远端自动重新激活;
  • 本地同步目录存在未提交修改时停止同步,要求用户处理或重新克隆。

敏感数据处理

  • 会话、项目元数据和 Skills 可以作为私有 Git 仓库中的普通文件;
  • MCP 配置、.env、Cookie、Token 和授权材料作为原子组进入加密 .aics 保险库;
  • .aics 口令只在本机由 Electron safeStorage/Windows DPAPI 保护;
  • Git 凭据由系统 Credential Manager 或 SSH 管理;
  • auth.json 不加入同步快照;
  • 导入前要求 Codex 已关闭,目标路径必须位于已检测的 Codex 数据目录内。

参与贡献

请先阅读 CONTRIBUTING.md。提交 Bug 时不要上传真实聊天内容或敏感配置;安全问题请按照 SECURITY.md 的方式私下报告。

许可证

本项目采用 MIT License

本软件首发于 LINUX DO 社区。

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages