减少 Codex 占用,保留还要继续用的对话
先分清会话历史、内嵌图片、缓存和索引。在一台开发者的 Mac 上,1,231 段对话共 22.83 GB,其中 71% 是图片。对仍需要且受支持的会话,Mint 的 Optimize 可减少重复图片存储,保留 Codex 继续会话时要读的图片。移除媒体与删除是另外的选择;只归档不会释放空间。
要点
- 从这里开始: 先保留需要的对话,查看受支持的 Optimize,再决定是否舍弃媒体或整段会话。
- 实测样本: 一台 Mac,1,231 段对话,22.83 GB,71% 是图片。这不是你的预期节省量。
- 验证结果: 对比实际空间并重新打开会话。需要的工作仍能继续,少占空间才有意义。
真实会话的前后实测
10 月 15 日的测试使用公开版 Mint 1.0.99,8 个符合条件的会话副本占用减少 35.1%,继续请求与撤销内容校验全部通过。另一次是 9 月 26 日 Mint 团队用开发版本做的另一种文件级压缩实验,为 3.13 GB 真实 Codex 文件省下 1.29 GB,约 41%,平均每个会话省 428.42 MB。4 个文件逐字节一致,Codex 读到相同的 1,598 轮对话。两次方法与文件不同,各自有带日期的证据。
这些对话还要继续用,可以改什么?
重复文件扫描可能什么也找不到,但对话里仍有重复图片:文字不同,整份文件就不同。我们另一项 1,467 份文件的研究统计了这些重复内容,并没有测量 Mint 实际可回收的字节。
| 你的目标 | 复核哪种操作 | 会保留什么 |
|---|---|---|
| 保留受支持的会话图片,减少重复存储 | Optimize(优化) | 保留文字及 Codex 继续会话所需的图片;能否处理取决于格式、使用状态和依赖。 |
| 保留文字,放弃内嵌媒体 | Remove media(移除媒体) | 保留文字;选中的内嵌图片、音频和视频会永久移除。 |
| 不再保留某段对话 | Delete permanently(永久删除) | 整段选中对话被移除,不能把它当成保留内容的优化。 |
~/.codex 里有什么
对话是 Codex 称为 rollout 的文件。进行中的在 ~/.codex/sessions,归档的在 ~/.codex/archived_sessions。每段对话一开始都是 .jsonl 文件。在实测的 codex-cli 0.155.1 环境中,Codex 会把闲置满 7 天的对话改存成同名的 .jsonl.zst,这是 Codex 仍然能打开的压缩副本;更新的对话还是 .jsonl。这是该测试环境的表现,不代表所有客户端默认如此;原生压缩取决于安装版本和配置。在 Codex 里归档一段对话,只是把文件从一个文件夹挪到另一个,空间不会变少。
截图是以数据形式写进文件的。长会话每做一次上下文精简(compaction),就会把同一张截图再写一遍。在测的那台 Mac 上,一段 1.76 GB 的对话里有 1.57 GB 是重复的截图。
这个目录里还有 thread_history_1.sqlite(那台 Mac 上 1.74 GB)和 logs_2.sqlite(1.13 GB),另外还有 worktree 和插件。这两个 SQLite 文件是 Codex 自己的索引和日志,不是对话,也不该手动去改。
自己动手腾空间
能在 Codex 里做的就在 Codex 里做。它自己维护着对话索引,也默认只有它会去改这些文件。
- 在 Codex 里删掉用完的对话,这样它的索引才不会出错。
- 清缓存或运行时之前,先退出 Codex。
- 自己改某个对话文件之前,先确认有没有其他对话依赖它。
- 如果有,这个文件就别动,改短它可能让依赖它的对话无法打开。
Mint 能帮你做什么
Mint Direct 1.1.0 能读取普通 .jsonl 对话和已压缩的 .jsonl.zst 对话。在“硬盘”页的 Yours · Codex 中,可以查看每段对话的大小、最后使用时间和图片数量,也可以用“Last used”菜单筛选。Optimizable · Codex 列出支持的优化及实测可节省空间。这里说明的是 Direct 1.1.0;Mac App Store 和 Setapp 的能力取决于各自已发布的版本。
对受支持的 .jsonl 对话,Optimize(优化)能减少重复截图的存储,也能在不改变像素的前提下让图片少占空间,保留 Codex 继续对话时要读的图片。符合条件的图片优化可以撤销,前提是所需的原始数据和历史仍然可用。
对符合条件的 .jsonl.zst 对话,Optimize 会更高效地压缩现有会话。解压后,包括文字和内嵌媒体在内的全部会话内容逐字节保持一致。这种仅改变压缩方式的优化不提供撤销;Mint 只会在扫描确认符合条件且还能进一步省空间时提供这项操作。
在 Yours · Codex 中,Keep text only(只留文字/Remove media)保留对话文字,永久移除内嵌的图片、音频和视频,原处只留占位内容,没有小预览图。已移除的媒体无法恢复。Delete permanently(永久删除)会通过 Codex 删除选中的整段对话。
Mint 会在改动对话前检查所选操作是否受支持。格式、使用状态和对话之间的依赖会影响可用操作,请看清所装版本里的确认说明。SQLite 文件只测大小,从不修改。
观看操作演示 (0:33): Where did my Mac storage go? What AI agents leave behind
第一次就验证:文件还在,空间少占了
第一次扫描后,先看 Optimizable。它列出受支持的存储优化机会,保留文件的名称、位置和内容。你的 Mac 也可能已经存得很高效;先看结果,再选择操作。
- 查看一项优化会影响哪些文件。处理 Codex 对话时,只在所装版本提供这项操作时选择 Optimize;Remove media 和 Delete 的永久影响不同。
- 完成后,对比操作结果与磁盘可用空间,再打开需要的文件或会话。扫描估计和可用空间的变化可能不同。
- 确认结果后,为希望持续照护的项目和文件夹启用受支持的 Auto Care。Mint 运行时会按你选的范围与时间执行;对话的具体操作仍按应用里的说明复核。
为什么清旧对话省下的空间比预想的少
重复的截图主要堆在最近那些又长、截图又多的会话里。在测的那台 Mac 上,92% 的重复截图都在最近六天用过的对话里,所以只挑一周以前的对话,大部分都会漏掉。
能腾出多少空间,要看你选哪种操作。Optimize 只提供受支持的优化,Codex 要读的内容都会保留。Keep text only 连只出现一次的图片也能移除,但这些图片就永久没了。以你所选项目的实测估计为准,别把样本 Mac 的总量当成保证。
常见问题
归档 Codex 对话能省空间吗?
不能。归档只是把文件从 sessions 挪到 archived_sessions。要拿回空间,得优化或删除这段对话。
可以直接删掉 ~/.codex 或 archived_sessions 吗?
别成批删。删掉 ~/.codex 会带走所有对话、你的设置和 Codex 的本地状态,还是通过 Codex 或 Mint 一段一段删比较好。
thread_history_1.sqlite 能缩小吗?
手动操作不安全。它是 Codex 的索引,Mint 只测大小,不会整理也不会修改它。
优化后的对话在 Codex 里是什么样?
在 Direct 1.1.0 中,Optimize 会保留 Codex 继续受支持对话时要读的图片。普通 .jsonl 的图片优化要在所需原始数据和历史仍可用时才能撤销;.jsonl.zst 的压缩优化会让解压后的会话内容逐字节保持一致,但不提供撤销。Keep text only 是另一项永久操作:保留文字,移除内嵌图片、音频和视频,不留小预览图,也不能撤销。
先看清每段 Codex 对话有多大
扫描一次,在“硬盘”页打开 Yours,选 Codex 标签。动手之前,每段对话的大小和图片数量都看得到。