# Share OpenAI Codex Output — Put the Result Somewhere a Human Can Read It

Canonical: https://commareports.com/agents/share-codex-output
Published: 2026-09-02

> Codex finishes the task in a sandbox and prints the summary to your terminal. Add one line to AGENTS.md and it publishes the report to a URL your team can open, read and comment on.

# Share what Codex produced

Codex does the work in a sandbox and tells you about it in your terminal. That
is the right interface for the person who ran it and a dead end for everyone
else: a scrollback buffer is not a document, it does not survive closing the
window, and it renders a comparison table as ASCII if it renders one at all.

So the summary of a three-hour refactor gets summarized again, by you, badly,
into a Slack message.

## Tell it where finished work goes

Attach the MCP server (see [Codex setup](/mcp/codex) — a block in
`~/.codex/config.toml` and a [scoped token](/docs/api-tokens)), then write the
rule down where Codex will read it every time. `AGENTS.md` is exactly the file
for this:

```md
## Publishing results

When you finish work that a human needs to read — a refactor summary, a
security review, a benchmark comparison, a postmortem — write it as a
self-contained HTML document and publish it to Comma, then reply with the
URL and a two-line summary. Do not print the full document to the terminal.

Update report `rep_xxxxxxxx` rather than creating a new one, so the link in
our README keeps working.
```

Now every session ends the same way: a URL. The document is styled, the tables
are tables, and the person who asked for it can open it on a phone.

## Why a report beats a scrollback paste

- **It renders.** The HTML is stored verbatim and served inside a sandboxed
  iframe with scripts enabled, so a chart the agent generated still works and a
  diff stays aligned.
- **Readers need nothing.** No OpenAI account, no terminal, no repo checkout —
  visibility is [private, team, domain-gated, or link](/docs/sharing), set per
  report.
- **Comments anchor to the line.** "This assumes we're still on Postgres 14"
  pins to the sentence that assumed it, and stays there — see
  [commenting on HTML](/comment-on-html).
- **Codex can read the replies back** through the same MCP server, so the next
  run can start from "resolve the open comments" — see
  [letting an agent respond to comments](/agents/let-an-agent-respond-to-comments).
- **One URL over time.** Updating the same report appends a revision; the old
  version stays in the history, and any two revisions can be diffed.

## Worth knowing

- **Scope the token to `reports:write`.** An agent that can publish but not
  read is a much smaller thing to hand a sandbox — see
  [scoped tokens for AI agents](/agents/scoped-tokens-for-ai-agents).
- **HTML body: 5 MB.** Screenshots and archives go in as [assets](/docs/api).
- **Nothing re-executes.** The published page is a snapshot; a
  [routine](/docs/routines) is what refreshes one on a schedule.
- **Same pattern, every runner.** The instruction file changes name — AGENTS.md
  for Codex, `.cursor/rules` for Cursor, CLAUDE.md for Claude Code — and the
  behaviour is identical.

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Attach the MCP server →](/mcp/codex)**

### Related

- [Where should my agent post?](/agents/where-should-my-agent-post)
- [Share what Cursor produced](/agents/share-cursor-output) ·
  [Share HTML an AI chat generated](/agents/share-chatgpt-html-output)
- [Context budgeting for AI reports](/agents/context-budgeting-ai-reports) ·
  [The API](/docs/api)
