← ClaudeAtlas

codex-history-synclisted

当需要把一个 CODEX_HOME/.codex 中的 Codex 会话记录、history.jsonl、sessions 和 thread title 元数据单向同步到另一个用户或目录下的 .codex 时使用;强调 dry-run、敏感配置排除、filter、force 边界和同步后验证。
black-yt/skills · ★ 2 · Data & Documents · score 63
Install: claude install-skill black-yt/skills
# Codex History Sync ## 适用场景 - 把一个 `CODEX_HOME` 下的 `.codex` 历史记录同步给另一个用户、另一台机器、另一个 Windows/WSL 目录或备份目录。 - 只迁移会话记录、`history.jsonl`、`sessions/` 和 thread title/name 元数据,不迁移登录态和长期配置。 - 需要按项目关键词筛选历史记录时,用 `--filter` 做路径/文本内容正则过滤。 - 需要只同步会话标题、名称或 SQLite/JSON/JSONL 中的 title metadata 时,用 `--rename-only`。 ## 核心边界 - 这是单向同步:`--source` 是可信来源,`--dest` 是接收方。 - 默认不会删除目标目录中的文件。 - 默认不会覆盖目标中已有但内容不同的文件;只有加 `--force` 才会覆盖。 - 默认排除 `auth.json`、`config.toml`、`credentials.json`、`settings.json`、`.env`,以及 `bin/`、`cache/`、`logs/`、`node_modules/`、`tmp/`。 - 不要默认使用 `--include-sensitive`。只有用户明确要求迁移配置/凭据类文件,并理解风险时才考虑。 - 同步前先运行 `--dry-run --verbose`,确认复制、覆盖、跳过和 title 更新范围。 ## 脚本 使用 bundled script: ```bash python3 codex-history-sync/scripts/sync_codex_history.py --help ``` 脚本能力: - 复制源 `.codex` 中选定目录和根文件,默认同步 `sessions/` 和 `history.jsonl`。 - 保留相对路径和文件时间戳。 - 对已有不同文件默认跳过,避免覆盖目标用户已有历史。 - 支持 `--force` 覆盖目标不同文件。 - 支持 `--filter '[REGEX]'`,只同步相对路径或文本内容匹配的记录。 - 支持 `--all-folders` 或 `--folders sessions [OTHER_FOLDER]` 控制顶层目录。 - 支持 `--root-files history.jsonl [OTHER_FILE]` 控制根文件。 - 支持从 JSON、JSONL 和 SQLite 文件中收集源 thread title/name,并更新目标中的同 ID title/name。 ## 推荐流程 1. 确认源和目标目录。 ```bash SOURCE_CODEX_HOME="[SOURCE_CODEX_HOME]" DEST_CODEX_HOME="[DEST_CODEX_HOME]" ``` `SOURCE_CODEX_HOME` 和 `DEST_CODEX_HOME` 应该是包含 `.codex` 的目录,或者直接用 `.codex` 目录作为参数。保持两个参数表达一致即可。 2. 先 dry-run。 ```bash python3 codex-history-sync/scripts/sync_codex_history.py \ --source "[SOURCE_CODEX_HOME]/.codex" \ --dest "[DEST_CODEX_HOME]/.cod