SaveAI

Codex 聊天太多怎么清理?一次批量删除的实际经验

Admin

用 Codex 一段时间后,侧栏很容易堆满聊天:临时排查、已经完成的任务、重复尝试,还有早就不会再打开的会话。

想清理时才发现,归档、永久删除和最近会话列表的刷新,是三件不同的事。

经过搜索发现在Reddit中有人遇到同样问题的人:

图片

下方的评论中的意思是“告诉它删除所有我在x天内没有触碰过的聊天记录”

所以,我决定按照这个思路来清理我本地超过 5 天没有活动的聊天。

最终我筛选出 55 条本地聊天,执行删除后再次检查,符合条件的记录已经归零。但界面的最近会话列表仍显示部分旧条目,点击后却提示聊天已删除。

这个过程有几处值得分享。

1、先确定:想隐藏,还是想彻底删除?

归档适合整理侧栏:聊天从日常列表消失,但记录仍保留,可以恢复。

如果明确不需要保留内容,就要使用永久删除。不能因为列表变干净了,就认为聊天记录已经清除。

还有一个区别:同一个应用可能同时显示本地 Codex 会话和普通 ChatGPT 云端聊天。清理本地会话的命令,并不能一起删除云端聊天。

2、本地 Codex 有永久删除命令

官方文档提供了按会话 ID 或名称删除的方法:

codex delete '聊天的完整标题'

运行后,核对提示,再确认删除。永久删除可能同时移除派生子会话,操作前应确认范围。官方命令说明

不过,我第一次运行时遇到了:

-bash: codex: command not found

这并不一定意味着电脑没有安装 Codex。此次问题是终端找不到应用内附带的命令,改用可执行文件的完整路径后就能调用。

我这台 Mac 上的路径是:

"/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex" delete '聊天的完整标题'

这只是本次电脑上的实际路径,不同安装方式和版本可能不同。遇到找不到命令的问题,应先确认自己的安装位置。

3、批量清理,关键是先生成准确的清单

Codex 聊天太多怎么清理?一次批量删除的实际经验

逐条输入标题很慢,也容易选错。更实用的办法是先读取会话列表,按规则筛选,再通过会话 ID 逐条执行删除。

图片

此次使用的规则是:

  1. 最后更新时间和可获取的最近打开时间,都超过 5 天。
  2. 包含已归档的本地聊天。
  3. 如果会话树中有近期活动,保留相关聊天,避免连带删除。
  4. 内部审查会话不作为独立的清理目标。

筛选时要读取完整列表,包括后续分页。只检查侧栏当前显示的几十条记录,很容易漏掉更早的聊天。

批量工具先展示清单,用户确认一次后,再调用删除命令。按 UUID 删除时,官方支持 --force 参数跳过逐条确认;因此,前面的清单核对尤其重要。参数说明

本次先做了只读预览,找到 55 条符合条件的本地聊天。删除后重新读取列表,符合条件的记录变成了 0 条。

(PS: 批量清理的python代码我将放到最后)

4、删除成功,为什么最近会话还在?

这次最容易让人困惑的现象是:旧标题仍在最近会话列表里,但点击后提示已经删除。

结合重新读取的会话列表,可以判断聊天删除已生效;界面残留条目很可能与列表尚未刷新有关。仅凭标题还在,不能断定删除失败。

此时可以先等其他正在运行的任务结束,再完全退出应用并重新打开。Mac 上可使用 ⌘Q,而不仅是关闭窗口。官方排障文档也建议在活动聊天完成后重启应用,处理持续卡住的状态。官方排障说明

如果重启后仍有失效条目,应继续排查列表状态,而不是反复删除同一批会话。本次记录尚未确认重启后的界面结果,不能把重启写成已经验证成功的修复。

5、清理完成,要看两项结果

一次完整的清理,需要分别检查:

  1. **记录是否已删除:**重新读取会话列表,确认目标记录不再存在。
  2. **界面是否已更新:**最近会话和侧栏是否还残留失效入口。

这次经验说明,批量清理最重要的不是把删除命令执行得更快,而是先明确范围、展示清单,再核对实际结果。这样既能清掉不需要的聊天,也能分辨删除失败与界面未刷新这两种不同的问题。

本文由 SaveAI 用户撰写,经审核后发布。

返回博客