[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80534":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},80534,"cc-sessions","ccpopy\u002Fcc-sessions","ccpopy","提供codex不同提供商会话修复和claude会话管理，支持会话备份以及会话分支，以及统计，一切都在本地运行","",null,"Rust",96,5,61,1,0,19,22,35,57,76.83,"MIT License",false,"main",true,[],"2026-06-12 04:01:29","# CC Sessions\n\n![Version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fccpopy\u002Fcc-sessions?label=version&sort=semver)\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green)\n![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)\n![Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-2-ff9900)\n\nCC Sessions 是一款本地桌面应用，用于浏览、检索、备份、导入导出及修复 Codex 与 Claude Code 的会话记录。应用基于 Tauri、React、TypeScript 和 Rust 构建，默认读取本机的 `.codex` 和 `.claude` 目录。\n\n![CC Sessions 模拟数据截图](img\u002Freadme-screenshot.png)\n\n## 功能\n\n- 按 Codex \u002F Claude Code 来源查看会话列表。\n- 支持按 ID、标题、首条消息及工作目录进行搜索。\n- 预览 JSONL 会话内容，区分用户消息、助手消息、推理过程、工具调用与工具返回。\n- 备份、恢复、导入、导出会话包。\n- 修复 Codex 本地索引、重建 `threads` 表、清理 orphan 记录。\n- Codex 会话支持 provider 分支管理，并可从稳定对话节点创建回溯分支。\n- 设置页面支持手动检查 GitHub Release 更新，并跳转至最新 Release 下载页面。\n\n## 快捷键\n\n| 场景 | 快捷键 | 作用 |\n| --- | --- | --- |\n| 全局 | \u003Ckbd>Ctrl\u003C\u002Fkbd> \u002F \u003Ckbd>Cmd\u003C\u002Fkbd> + \u003Ckbd>K\u003C\u002Fkbd> | 聚焦搜索框 |\n| 全局 | \u003Ckbd>Ctrl\u003C\u002Fkbd> \u002F \u003Ckbd>Cmd\u003C\u002Fkbd> + \u003Ckbd>B\u003C\u002Fkbd> | 展开或收起侧边栏 |\n| 全局 | \u003Ckbd>Ctrl\u003C\u002Fkbd> \u002F \u003Ckbd>Cmd\u003C\u002Fkbd> + \u003Ckbd>Shift\u003C\u002Fkbd> + \u003Ckbd>L\u003C\u002Fkbd> | 切换明暗主题 |\n| 会话列表 | \u003Ckbd>Delete\u003C\u002Fkbd> \u002F \u003Ckbd>Backspace\u003C\u002Fkbd> | 删除已选会话 |\n| 会话预览 | \u003Ckbd>Home\u003C\u002Fkbd> | 滚动到已加载内容顶部 |\n| 会话预览 | \u003Ckbd>End\u003C\u002Fkbd> | 滚动到已加载内容底部，并继续加载后续内容 |\n| 会话预览 | \u003Ckbd>Page Up\u003C\u002Fkbd> | 向上翻页 |\n| 会话预览 | \u003Ckbd>Page Down\u003C\u002Fkbd> | 向下翻页，并在接近底部时继续加载后续内容 |\n\n全局快捷键不会在输入框、文本框或弹窗内触发；会话预览的滚动快捷键只在预览弹窗内生效，并会避开过滤输入框。\n\n## 开发环境\n\n前置依赖：\n\n- Node.js 20 及以上版本\n- npm\n- Rust stable 工具链\n- 目标平台对应的 Tauri 2 构建依赖\n\n安装依赖：\n\n```bash\nnpm ci\n```\n\n启动开发环境：\n\n```bash\nnpm run tauri:dev\n```\n\n前端构建：\n\n```bash\nnpm run build\n```\n\nTauri 构建：\n\n```bash\nnpm run tauri:build\n```\n\n## CLI \u002F WSL 无桌面环境\n\n仓库同时提供无桌面 CLI 二进制 `cc-sessions`。CLI 构建关闭 Tauri `desktop` feature，不启动窗口，也不依赖 WebView \u002F WebKitGTK，适合 WSL、服务器或只有 SSH 的环境。\n\n检查 CLI 构建：\n\n```bash\nnpm run cli:check\n```\n\n构建 release 版 CLI：\n\n```bash\nnpm run cli:build\n```\n\n构建后的二进制位于：\n\n```bash\nsrc-tauri\u002Ftarget\u002Frelease\u002Fcc-sessions\n```\n\nWindows 下文件名为 `cc-sessions.exe`。\n\n推荐先使用交互式菜单。直接运行 CLI 不带子命令时会进入菜单模式：\n\n```bash\nnpm run cli:run\n```\n\nWindows release 版构建后可直接运行：\n\n```powershell\n.\\src-tauri\\target\\release\\cc-sessions.exe\n```\n\n进入菜单后输入序号即可逐层选择功能；列表页支持 `n` 下一页、`p` 上一页、`b` 返回上一层、`m` 返回主菜单、`0` 退出。列表页还支持 `s` 选择多个当前页序号、`u` 取消选择、`c` 清空选择、`d` 删除已选会话；选择序号可以用空格或逗号分隔，也支持 `1-3` 这种范围。删除、覆盖恢复、清理和分支切换等写入操作需要输入 `yes` 才会执行。\n\n交互菜单里的“预览会话内容”默认只显示 Codex \u002F Claude Code 应用中可见的用户消息和助手消息，不显示工具调用、工具返回、元数据，也会过滤 Codex 注入的 AGENTS 指令和环境上下文。如需排查完整 JSONL 事件流，可在预览模式中选择“全部事件”。\n\n需要脚本化或机器可读输出时，再使用子命令：\n\n```bash\ncargo run --manifest-path src-tauri\u002FCargo.toml --no-default-features --bin cc-sessions -- list --limit 20 --sort size\ncargo run --manifest-path src-tauri\u002FCargo.toml --no-default-features --bin cc-sessions -- --json repair diagnose\n```\n\n常用脚本化命令：\n\n```bash\ncc-sessions\ncc-sessions menu\ncc-sessions list --limit 20 --sort size\ncc-sessions --provider claude search \"关键词\"\ncc-sessions projects --archived\ncc-sessions preview ~\u002F.codex\u002Fsessions\u002F...\u002Frollout-xxx.jsonl --limit 40\ncc-sessions preview ~\u002F.codex\u002Fsessions\u002F...\u002Frollout-xxx.jsonl --mode all --limit 40\ncc-sessions backup create --backup-dir .\u002Fbackups --id \u003Csession-id> --name first-backup\ncc-sessions repair diagnose --json\ncc-sessions repair index --dry-run\ncc-sessions bundle export --out-dir .\u002Fbundles --id \u003Csession-id>\n```\n\n默认路径与桌面端一致：Codex 读取 `~\u002F.codex`，Claude Code 读取 `~\u002F.claude`。可通过 `--codex-dir`、`--claude-dir` 覆盖。`list` 和 `search` 支持 `--sort size` 按 token 从小到大排序，便于找出问候测试等低消耗无效会话。`preview` 默认是 `--mode conversation`，如需查看工具调用、工具返回和原始元数据，请使用 `--mode all`。需要机器可读输出时加 `--json`。\n\n### CLI 修复项说明\n\nCLI 和桌面端的修复功能只处理 Codex 本地索引和可见性问题，不会修改会话正文语义，也不会凭空恢复已经删除的 JSONL 会话文件。\n\n- `修复 session_index.jsonl`：扫描 `~\u002F.codex\u002Fsessions\u002F` 下仍存在的 active rollout 文件，重建 Codex 的 `session_index.jsonl`。它用于修复“会话文件还在，但索引缺失导致列表看不到”的问题，不是修复 JSONL 内容。\n- `重建 threads 表`：从 rollout 元数据重新写入或更新 `~\u002F.codex\u002Fstate_5.sqlite` 中的 `threads` 表。它用于修复 Codex 本地列表、搜索、标题、工作目录等数据库记录缺失或漂移的问题。\n- `清理 orphan 记录`：删除 `session_index.jsonl` 或 `threads` 表里指向已不存在 rollout 文件的残留记录。它不会删除仍存在的有效会话文件。\n- `克隆会话到 provider` \u002F `批量克隆到当前 provider`：用于处理 Codex `model_provider` 切换后，历史会话 provider 与当前配置不一致导致的可见性或续聊问题。\n- `从事件创建回溯分支`：从某个稳定事件位置复制出新分支，并归档原 active 分支。该操作会写入本地 Codex 会话文件和索引，执行前会要求确认。\n\n## 发布\n\n项目中以下文件的版本号需保持一致：\n\n- `package.json`\n- `src-tauri\u002FCargo.toml`\n- `src-tauri\u002Ftauri.conf.json`\n\n推送形如 `v0.2.6` 的 tag 将触发 GitHub Actions 打包并创建 Release：\n\n```bash\ngit tag -a v0.2.6 -m \"v0.2.6\"\ngit push origin main\ngit push origin v0.2.6\n```\n\n工作流会在 Windows、macOS 和 Linux 上分别构建 Tauri 安装产物。macOS 打包要求 `src-tauri\u002Ficons\u002Ficon.icns` 存在，本仓库已提交 Tauri 生成的跨平台图标文件。\n\nWindows Release 会额外上传 `cc-session-manager-portable-v版本号-windows.exe`，这是无需安装即可直接运行的便携版可执行文件。\n\nRelease 也会在 Windows、macOS 和 Linux job 中分别上传 `cc-sessions-cli-v版本号-平台.zip`，这是不依赖桌面环境的 CLI 版本。远程仓库推送版本 tag 触发发布时，CLI 包会和桌面安装包一起出现在同一个 GitHub Release 中。\n\n## 手动打包\n\n生成源码包：\n\n```bash\nnpm run package:source\n```\n\n生成便携包：\n\n```bash\nnpm run package:portable\n```\n\n在 Windows 上，该命令会同时生成便携版压缩包和可直接运行的 `cc-session-manager-portable-v版本号-windows.exe`。\n\n生成安装器包：\n\n```bash\nnpm run package:product\n```\n\n生成 CLI 包：\n\n```bash\nnpm run package:cli\n```\n\n打包输出位于 `release\u002F` 目录，该目录不会提交到仓库。\n\n## macOS 可执行文件处理\n\n从 GitHub Release 下载的 macOS 应用可能被 Gatekeeper 阻止运行，需移除 quarantine 扩展属性：\n\n```bash\n# 移除 .app 包的隔离标记\nxattr -d com.apple.quarantine \"\u002FApplications\u002FCC Sessions.app\"\n```\n\n若使用便携包中的独立二进制文件，需额外赋予可执行权限：\n\n```bash\nchmod +x cc-session-manager\nxattr -d com.apple.quarantine cc-session-manager\n```\n\n## 特别感谢\n\n[linux.do](https:\u002F\u002Flinux.do) —— 真诚、友善、团结、专业，共建你我引以为荣之社区。\n\n[codex-session-cloner](https:\u002F\u002Fgithub.com\u002Fgoodnightzsj\u002Fcodex-session-cloner) —— 参考了修复和会话导出导入的代码\n\n## License\n\nMIT\n","CC Sessions 是一款本地桌面应用，用于管理 Codex 和 Claude Code 的会话记录，支持浏览、检索、备份和修复功能。该应用基于 Tauri、React、TypeScript 和 Rust 构建，提供按来源查看会话列表、多条件搜索、JSONL 会话内容预览及会话包的导入导出等核心功能。它特别适用于需要对 AI 会话进行管理和维护的开发者，如在开发过程中遇到会话丢失或损坏时，可以利用其修复功能恢复数据；同时，通过会话备份与分支管理功能，用户能够更灵活地组织和复用历史对话。此外，还提供了无桌面环境下的 CLI 版本，适合在 WSL 或仅有 SSH 访问权限的服务器上使用。",2,"2026-06-11 04:01:08","CREATED_QUERY"]