【开源推广】Codex & Claude Code Session Manager 强迫症福音!一个管理Codex与ClaudeCode的会话的工具

xiaozhi0079 2026-08-20 17:32 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以上为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


写在开始


如果大家经常在codex和claudecode的会话记录上下功夫,或者遇到过会话消失、项目改名后历史丢失、某一轮内容想修改之类的问题,可以试试本工具。


页面展示图



Codex & Claude Code Session Manager


这是一个可以把本机的所有codex与claudecoide会话按目录整理出来,便于查看、诊断、修改、删除、迁移和恢复的工具!


本工具解决如下痛点:



  1. 切换供应商以后,部分 Codex 历史会话消失;

  2. 某一轮对话跑偏了,或者因为某些内容导致上游拒绝继续,想改掉这一轮却很麻烦;

  3. 网络错误、上游错误、中断记录混在正常对话里,看着很难受;

  4. 同一个项目目录下面积累了一堆没用的会话,但客户端里又没有提供清理功能;

  5. 项目文件夹一移动,或改名,之前的历史会话又找不到了;

  6. 终端工具调用或者mcp输出结果不便于查看。




1. 切了供应商以后,会话不见了?可以尝试修复


这是我一开始做这个工具的主要原因。


使用 ccswitch 或其他方式切换 Codex 供应商以后,有些历史会话其实并没有被删除,只是因为会话里的供应商信息和当前配置对不上,导致 Codex 不再显示它们。我搞不懂为什么codex这么设计,之前手动改codex的配置,看到供应商字段,以为就是个摆设字段。


Session Manager 会检查会话文件、SQLite 记录以及相关供应商字段,找出这种“数据还在,但客户端看不见”的情况,并且可以一键对当前codex可见。


2. 可以直接管理某一轮对话


有一次我请求某个上游时,重试了很多次仍无法请求,也不愿意再新开对话。另开了窗口分析了该窗口,才知道是因为消息中出现了敏感词,导致后面的对话没办法继续。这个功能就可以很方便的处理这种问题了。


诸如此类场景,一个会话里如果某一轮出了问题,处理起来通常都比较繁琐,因为codex的会话不仅仅是一个json文件(事实上这个json文件也很可怕,非常之冗长),还涉及 rollout、SQLite 历史、标题索引、供应商字段、备份等数据。该工具可以让我们直接按轮次操作:



  1. 修改某条用户消息或者助手;

  2. 删除指定的一轮;

  3. 从某一轮开始,把后面的内容全部截断;

  4. 查看错误信息、中断信息;

  5. 单独、批量删除会话;


另外因为大家都高频使用中转站,碰到上游不太稳定,经常断开的情况,原本会话中许多429和继续,也可以收拾干净一点了。




3. 不只是看会话记录,也可以看完整落盘上下文


Codex / Claude Code 实际保存下来的东西,比客户端中看到的东西要多得多。不仅仅只是UI中看到的会话内容,还有:系统指令,工具调用,工具返回结果,中止和失败状态,上游模型报错,会话恢复记录,Claude Code 的工具结果和子代理相关记录。

所以工具里做了两种查看方式:


精简模式:平时就当普通聊天记录看。


完整模式:排查问题的时候,把实际落盘的上下文尽量完整地展示出来。


有时候从终端中看工具调用或者mcp调用等等,完整上下文会有用很多。




4. 会话健康检查


上面说到codex的会话存储很复杂,Claude Code也一样,也有主会话文件、项目索引、工具结果和其他关联数据。该工具会把这些信息放在一起检查,可以帮助诊断会话的健康与否。因为codex和claudecode的版本更迭,每个信息存放的位置可能不同,如若某些历史记录不显示,你可能从这里看到不显示的原因,但是修复的逻辑,这就比较复杂了,此功能还有待开发。




5. 项目文件夹改名后,可以迁移历史会话


之前我为了省事,把好多文件夹都放桌面,后来桌面太乱了,又全收拾到了D盘,然后发现会话都消失了。于是我把项目挪回桌面,会话则会出现。实际上更改目录名称也会导致这个问题。


项目本身是正常的,但以前的 Codex / Claude Code 会话仍然绑定旧路径,在新目录下面自然找不到那些历史记录。


Session Manager 可以把同一个项目下面的历史会话批量迁移到新路径。


目前会分别处理:




  • Codex:rollout、SQLite 记录以及相关兼容索引;




  • Claude Code:会话正文、项目索引以及相关存储目录。




为了避免手写路径,专门设计了通过系统的文件夹选择窗口选择新目录的功能。


迁移之前也会先显示影响范围和冲突情况。


需要特别说明:如果你需要迁移项目,需要你先手动移动文件夹,移动之后再在工具中选择迁移。


6. 备份


因为codex有时会更新会话内容的存储位置,所以该工具有可能与codex版本不适配,此时功能会失效。所以本工具提供备份功能,操作历史功能,还有一键撤回功能。


操作历史里可以看到:操作的是哪个会话,对该会话做了什么操作,当前是否可以回退。


会话编辑、删除、目录迁移、可见性修复这些操作,都会默认生成备份。


目前没有完全解决的问题


一个会话里面可能会有不同的报错(红色输出),所以一开始也想把这些全部清理掉。


但是 Codex 对不同异常的落盘方式并不完全一样。有些是真正的 error,这种比较容易识别和处理;但还有不少情况在 Codex 里面记录的是 中断状态,并不是单纯的一条错误消息,这类记录如果强行删除,可能会影响上下文结构,所以目前没有提供删除功能。




写在最后


项目完全开源,有问题欢迎提 Issue。

GitHub:


最新回复 (1)
  • 西行寺幽幽子 08-24 12:28
    1

    大佬,如何导出会话呢?我想重装Codex,备份当前对话,重装后再导入,应该怎么操作?

* 帖子来源Linux.do
返回