Why ChatGPT/Codex Bundles LibreOffice

Simon Willison’s note, The ChatGPT/Codex app bundles a full copy of LibreOffice, is a short developer observation about OpenAI Codex, OpenAI’s coding agent, carrying a very large office-suite dependency. It deals with a practical question: why would an AI coding app need machinery for Word, Excel, PowerPoint, and document rendering at all? The takeaway is that Codex CLI workflows are no longer only about source files; they increasingly touch the messy documents that describe the work. LibreOffice is an open-source office suite that can read, render, and convert many Microsoft Office formats locally.
Notice the dependency, not just the size
The easy reaction is to laugh at the weight. Bundling a full office suite inside an AI coding app feels strange if you think the app’s job is “read code, write code, run tests.” GitHub Copilot Workshop is part of Harness Institute.
But the dependency tells a more interesting story. A codex agent often needs the surrounding evidence: a product requirements document, a spreadsheet of pricing tiers, a PowerPoint from a customer workshop, or a legacy .docx design note that nobody has moved into the repo.
LibreOffice gives the app a local way to interpret those files without asking every user to export them first. That matters because office formats are not polite text files. They contain layout, embedded objects, track changes, formulas, tables, and formatting quirks that can change what the document means.
The trap is treating this as only a “bloat” story. Size matters, especially on laptops and in managed environments, but the deeper question is what the agent is allowed to inspect and transform when the work starts outside Git.
Ask what Codex can inspect locally
As of September 2026, the public observation is about the ChatGPT/Codex app’s package contents, not a detailed OpenAI design note for why LibreOffice is there. Developers in the discussion reasonably asked whether the suite ships from the start or could have been downloaded later for a local job. That distinction matters for disk size and packaging, but it does not erase the workflow signal.
If an AI coding tool can read office files locally, those files can become part of the engineering loop. A vague ticket can point at pricing-model.xlsx. A migration task can reference legacy-admin-spec.docx. A release note can be checked against a slide deck from sales.
That is powerful, and a little dangerous. The agent may summarize a document correctly, miss a hidden worksheet, flatten a comment thread, or preserve the words while losing the layout that made the words meaningful.
For Codex users, the right mental model is simple: treat office documents as inputs with provenance, not as magical context. In Codex CLI workflows, that means making the conversion step visible enough to review.
Keep document conversion reviewable
A good repo does not let generated code appear without tests. It should not let generated document interpretation appear without a receipt either.
Here is a small pattern that works well in a real product repo. Put source documents in a clearly named folder, convert them into reviewable text or PDF artifacts, and ask Codex to cite the converted artifact when changing code.
repo/
docs-input/
enterprise-pricing.xlsx
admin-workflows.docx
docs-derived/
enterprise-pricing.csv
admin-workflows.md
AGENTS.md
Then make the rule boring and explicit:
# AGENTS.md
When a task depends on files in docs-input/:
- Do not edit the original .docx, .xlsx, or .pptx file unless explicitly asked.
- Create or update a derived artifact in docs-derived/ first.
- In the final answer, name the source document and the derived file used.
- If a spreadsheet has hidden sheets, formulas, or merged cells, stop and ask before changing code.
This is not glamorous. It is the difference between “the agent seemed to read the spreadsheet” and “the agent used docs-derived/enterprise-pricing.csv, which I can diff.”
If you expose a document store through Codex MCP, keep the same boundary. Start read-only, return filenames and timestamps with retrieved content, and avoid giving the agent write access to canonical business documents unless the review path is clear.
Try it safely with one repo
Use this small experiment before you trust document-heavy work to an agent. It is not a rollout plan. It is just a cheap way to see where the sharp edges are.
| Check | What to do | Why it matters |
|---|---|---|
| Pick one boring file | Use a real .docx spec or .xlsx model, not a toy sample |
Toy files hide the exact layout problems you need to catch |
| Convert outside the chat | If you have LibreOffice installed, convert to Markdown, CSV, or PDF before asking Codex to reason over it | The derived file becomes diffable evidence |
| Add one AGENTS.md boundary | Tell Codex not to edit originals and to cite derived files | The agent has a local rule instead of relying on memory |
| Ask for a narrow change | Example: “Update the pricing validation tests from docs-derived/enterprise-pricing.csv” |
Narrow tasks make document errors visible |
| Review the receipt | Check which file Codex says it used, then inspect the diff and run tests | The output should be reproducible without replaying the chat |
A simple command workflow might look like this:
mkdir -p docs-derived
libreoffice --headless --convert-to csv --outdir docs-derived docs-input/enterprise-pricing.xlsx
codex
Inside Codex, keep the prompt concrete:
Use docs-derived/enterprise-pricing.csv to update pricing validation tests.
Do not edit docs-input/enterprise-pricing.xlsx.
Show the test command you ran and name the rows that changed behavior.
The limitation is obvious: conversion is lossy. A CSV export may drop formulas, colors, hidden sheets, comments, or chart context. For anything regulated, contractual, or customer-facing, have a human open the original file too.
For adjacent CLI ergonomics, Codex Skin Themes the Codex CLI is a useful reminder that terminal agents live or die by small interface details. Document receipts are one of those details.
One methodology lens
One useful way to read this through our methodology is the Plan step: delegate first-pass decomposition and dependency mapping, review the sequencing and assumptions, and keep ownership of scope and priorities. If that split is still fuzzy, the workflow usually is too.
Common questions
How should teams start with Codex?
Start by writing down one visible team rule for Codex, not a loose preference. That usually means a short repository convention, a review checklist, and one owner who can reject agent output when the evidence is missing.
Which Codex artifact should teams standardize first?
Standardize the smallest artifact that reviewers already touch: a AGENTS.md instruction, MCP note, or verification checklist. The point is not documentation volume; it is a shared place where scope, allowed tools, expected tests, and rollback notes are visible before generated code reaches review.
How do teams know the convention is working?
The convention is working when reviewers can approve or reject agent output from the artifact and evidence alone. Track whether pull requests name the rule used, include the promised checks, and avoid replaying long sessions just to understand what changed.
Best ways to use this research
- Best for: Codex teams deciding which AGENTS.md instruction, CLI workflow, MCP boundary, or verification loop to standardize next around “Why ChatGPT/Codex Bundles LibreOffice.”
- Best first artifact: turn the named fix into an AGENTS.md rule, verification checklist, MCP note, or review receipt before the next automated run.
- Best comparison angle: compare the workflow against the current Codex CLI review loop, shell boundary, and evidence trail; keep the path that leaves the shortest auditable trail.
Further reading
- The ChatGPT/Codex app bundles a full copy of LibreOffice — source
- OpenAI Developers — Codex CLI docs
- OpenAI Developers — Codex CLI
- OpenAI developers: guides agents md
Next move
Take this into the related training topic and test whether a new reviewer can defend the merge without replaying the chat.