Skip to content
Vibecoding & Agentic Tooling4 min read

What OpenAI's Codex Hides in ~/.cache Says About Agent Design

A disk-space audit turned up a full LibreOffice, Python, and Node.js install inside the ChatGPT desktop app's Codex runtime — a small discovery with real lessons for anyone shipping agentic dev tools.

By TRAGenX Desk

Share

Simon Willison was clearing disk space with OmniDiskSweeper, a macOS tool for finding what's eating your storage, when he found something unexpected: a 1.7GB cache folder left behind by the OpenAI Codex desktop app, which has since been rebranded into the main ChatGPT app. The folder, at ~/.cache/codex-runtimes/codex-primary-runtime/, contains a full Python install, a full Node.js install, and native binaries for Poppler (PDF rendering), git, and — the surprising entry — LibreOffice, the open source office suite that forked from OpenOffice.org in 2010 under The Document Foundation.

Why an AI coding agent ships an office suite

The giveaway is a nested plugins/openai-primary-runtime/plugins/documents/ directory containing what Willison calls skills: instructions that tell Codex when and how to reach for each binary. That's the actual point of the bundle. If a user drops a .docx, .xlsx, or .pdf into a chat and asks the agent to read, summarize, or edit it, the model doesn't parse the binary format itself — it shells out to LibreOffice (for office formats) or Poppler (for PDFs) to do the conversion, then works with the resulting text or extracted content.

This is a pattern worth noticing if you're building agentic tools yourself: instead of stuffing document-parsing logic into the model's context or hoping a general-purpose LLM can reliably decode a spreadsheet's XML internals, you give the agent a real toolchain and a skill file describing how to use it. The model's job shrinks to orchestration — deciding which tool to call and what to do with the output — while the actual file-format complexity lives in mature, purpose-built software that's been handling those formats for well over a decade.

The cost side: disk footprint as an architecture decision

The other half of the story is what this costs. Bundling a full Python runtime, a full Node.js runtime, and a native LibreOffice build means every install of the desktop app carries the update surface, licensing footprint, and disk usage of four separate pieces of software it isn't primarily built around. 1.7GB is not enormous by modern app standards, but it isn't free either, and it's the kind of decision that only shows up when someone goes looking with a disk-usage tool rather than reading a changelog.

For teams shipping their own agentic dev tools or internal 'vibecoding' assistants, the tradeoff is the same one OpenAI made here: give the agent real, sandboxed access to real software so it can do real work reliably, or keep it lighter and lean on the model to approximate what a dedicated tool would do exactly. The Codex bundle is a vote for the former, and it's a useful reminder that 'agent capability' in production is often less about a bigger model and more about which battle-tested binaries you're willing to carry around.

Why this matters beyond one cache folder

Nothing here is a vulnerability disclosure or a scandal; it's an accidental transparency moment into how a widely used AI product actually does document handling under the hood. But for engineers building agent-based tooling, it's a small, verifiable case study: skills plus real toolchains, orchestrated by the model, beat trying to make the model itself the parser. That's a pattern worth borrowing regardless of which lab you're building on top of.

FAQ

Frequently asked questions

Why does the OpenAI Codex app include LibreOffice?
So the agent can read and edit real office documents (like .docx and .xlsx files) by shelling out to LibreOffice for format conversion, rather than asking the language model to parse those binary formats directly.
What is a 'skill' in this context?
A skill here is a set of instructions bundled with the app that tells the AI agent when and how to invoke a specific local binary — for example, which tool to call for a PDF versus a spreadsheet.
How much disk space does the Codex runtime use?
Simon Willison found the `codex-primary-runtime` cache folder used about 1.7GB, covering bundled Python and Node.js installations plus native binaries for Poppler, git, and LibreOffice.

Sources

Share

Read next