The screenshot explains the feature list.
Simon Willison found a 1.7GB codex-runtimes cache in the macOS app. His disk view showed a 429.7MB libreoffice-headless directory alongside 440.6MB of Python, 446.4MB of Node, 187.9MB of Poppler, 148.1MB of Git, and smaller image-format helpers. He also found skills telling the app how to locate and use those binaries.
Now read the official product pitch: the desktop app can open documents, spreadsheets, images, and other files, create and inspect real outputs, and work across tools. LibreOffice describes itself as one suite with six tools—Writer, Calc, Impress, Draw, Base, and Math. Put those two documents beside the cache listing and the cargo stops looking random. The app is shipping a local workshop.
Capability has curb weight.
“Why is this app so large?” is a fair question. “Large therefore bad” is not a serious answer. A self-contained runtime can make document work more predictable than hoping every machine already has compatible converters. It can also consume disk, duplicate runtimes you already have, and enlarge the set of executable components that need inventory and updates.
The right unit is not megabytes alone. It is megabytes per dependable outcome. If a 429.7MB headless office payload reliably turns a messy presentation into an inspectable artifact offline, that weight may be honest. If it sits unused, cannot be disabled, or lags upstream fixes, it is dead cargo.
Do not confuse “local” with “small.”
Local execution changes where work happens; it does not erase operational questions. Which process launches the converter? What files can it read? Does it inherit network access? Where is the runtime version recorded? How is it replaced? Can the user see any of this before a document enters the bay?
No evidence in the source post establishes a vulnerability. Do not invent one. The practical lesson is narrower and better: embedded runtimes deserve the same asset discipline as visible dependencies. Name them, version them, bound them, update them, and make their purpose legible.
A five-minute garage inspection.
- Find the weight: inspect the app bundle and its cache directories instead of trusting the download size.
- Name the outcome: connect each heavyweight runtime to a user-facing capability—document preview, conversion, code execution, or version control.
- Trace authority: record readable paths, writable paths, network reach, child-process behavior, and permission prompts.
- Demand an update receipt: capture app version, runtime version if exposed, and the date the cargo was inspected.
- Recheck after updates: cargo changes. One screenshot is a VIN plate, not lifetime telemetry.