返回文章

用了 Codex 后,电脑空间为什么越来越少?

Codex App 归档并不会清掉会话记录和生成图片。这篇讲清三类数据分别在哪,以及怎样在 App 里先盘点再清理。

用了 Codex 后,电脑空间为什么越来越少?封面

我最近才发现,Codex App 已经在电脑里占了 4.2GB

更奇怪的是:我明明把不用的会话都归档了,归档目录里却还有 59 份记录,图片目录里还有 240 个文件。归档到底删了什么?

这里面包括所有 Codex 本地数据,并不全来自归档会话;不过单独看,归档会话占了 355MB,生成图片占了 474MB。

Codex 本地数据占用截图

我经常让 Codex 生成图片、整理资料、导出 PDF 和 Word。任务用完以后点一下“归档”,我一直以为这和删除差不多:侧边栏干净了,相关资源应该也会跟着清掉。

结果不是。

活动会话主要保存在 ~/.codex/sessions/;归档以后,会话记录会进入 ~/.codex/archived_sessions/

已经生成的图片仍可能留在 ~/.codex/generated_images/,而保存在 Documents 或项目目录里的 PDF、Markdown、图片,也不会因为会话被归档就消失。

也就是说,归档只是把任务从活动列表收起来,并不是硬盘清理功能。

一个 Codex 会话背后至少涉及三类数据:

  • 对话记录保存在 sessionsarchived_sessions
  • 生成图片和可视化保存在 generated_imagesvisualizations
  • PDF、Markdown 等最终文件则在项目目录或你指定的位置

归档主要处理第一类,另外两类有各自的保存位置和生命周期。

官方文档中,thread/delete 会永久删除活动或已归档的线程,以及它产生的子线程。codex delete 也被标记为稳定命令,用来永久删除保存的交互会话,而不是只把它隐藏起来。

OpenAI 文档中 thread/delete 的说明

OpenAI 文档中 codex delete 的说明

但要注意,删除线程,不等于删除线程周围的所有文件。 官方文档确认了线程记录怎么删除,却没有承诺 thread/delete 会同步清理内部图片、可视化缓存或项目产物。

上面提到的 codex delete,需要通过 Codex CLI 执行。

如果你只安装了 Codex App,操作会更简单:新建一个专门负责清理的会话,分两次告诉 Codex,先找出可以删除的内容,再确认删除哪些。

  1. 在 Codex App 中新建一个会话,把下面这段话发给它:
请检查所有已归档的会话,并用带编号的清单列出:

- 会话标题和日期
- 会话占用的空间
- 能够明确对应的图片和可视化缓存

这一步只做检查,不要删除或移动任何内容。

Codex 会返回一份编号清单。先看一遍,确定哪些会话以后不会再使用。

Codex 对已归档会话生成的占用清单

  1. 不要新建另一个会话,继续在当前会话中告诉 Codex 要删除哪些编号。例如:
我确认不再需要清单中的第 2、4、7 项,请执行清理:

- 永久删除这些已归档会话
- 将能够明确对应到这些会话的内部图片和可视化缓存移到废纸篓
- 保留项目目录中的 PDF、Markdown、图片等最终文件
- 无法确认归属的文件不要处理

完成后重新检查,并告诉我删除了什么、保留了什么。

这里的第 2、4、7 项只是示例,实际操作时换成你要删除的编号。第二条指令要继续发在同一个清理会话里,这样 Codex 才能对应前面的清单。

清理旧会话只是补救。为了避免以后继续散落,还可以给 Codex 加一条长期文件规则。

Codex 官方支持使用全局 ~/.codex/AGENTS.md 保存长期指令。

OpenAI 文档中全局 AGENTS.md 的说明

可以直接在 Codex App 中新建一个会话,把下面这段话发给 Codex:

请帮我设置全局文件输出规则。

先检查 `~/.codex/AGENTS.md`:

- 如果文件不存在,就创建它
- 如果文件已经存在,保留全部原有内容,不要覆盖
- 如果下面的规则尚未存在,就追加到文件末尾,不要重复添加

需要添加的规则:

# 文件输出规则

- 最终文件保存到 `/Users/你的用户名/Documents/Codex/Codex-Outputs/YYYY-MM-DD-任务名/`
- 完成时列出全部最终文件的绝对路径
- 不把 `~/.codex/generated_images` 或 `~/.codex/visualizations` 当作长期资料库
- 临时文件和最终文件分开;清理前先展示清单并等待确认

完成后重新读取文件,告诉我新增了什么,并给出文件的绝对路径。

设置完成后,新建一个会话再使用,Codex 会在新会话开始时读取这份规则。

Codex-Outputs/日期-任务名 只是我采用的目录习惯,大家可以根据自己习惯修改。

折腾完这一圈,我给自己留下了两个习惯:不用的会话先让 Codex 列清单再删,需要长期保留的文件统一放进输出目录。

以后再看到 Codex 越用越大,至少不用一脸懵地翻硬盘了。

同标签文章