SessionViewer

Codex CLI

Codex Session Viewer

Codex CLI records every session to a JSONL file on your machine, but that file is a wall of raw JSON. Drop it here and get the conversation back: the commands it ran and what they printed, the patches it applied, the plan it kept, and the reasoning between them.

Drop a session file here

Codex and Claude Code .jsonl (.gz works too), or click to pick one

Codex: ~/.codex/sessions/ Claude Code: ~/.claude/projects/

The file is parsed in your browser. Nothing is uploaded unless you choose to create a share link.

Where Codex keeps your sessions

Codex CLI writes one JSONL file per session, filed by date. Every turn, tool call and token count goes in there, and it stays on your disk — nothing is deleted when you close the terminal.

~/.codex/sessions/YYYY/MM/DD/rollout-<timestamp>-<uuid>.jsonl

# the session you just ran:
ls -t ~/.codex/sessions/*/*/*/*.jsonl | head -1

# find an older one by something you said in it:
grep -rl "the thing you remember" ~/.codex/sessions/ --include='*.jsonl'

What the viewer pulls out of the format

A Codex rollout file interleaves several record types — session_meta, turn_context, response_item and event_msg — and the interesting parts are spread across them. Tool calls and their output live in separate records joined by a call_id; reasoning is often encrypted and empty. The viewer stitches them back together:

Sharing a session with someone else

Every other Codex log tool is local — a desktop app, a CLI, a script that writes HTML you then have to send around. This one gives you a link: click Create share link and you get a URL anyone can open, no install on their side. The link is a random string, it is never listed or indexed, and every upload hands you back a delete command you can run whenever you want it gone.

Let Codex upload the session itself

You don't have to go find the file. Tell the Codex session you're already in to do it — it reads a short instruction file on this site that explains where sessions live, how to slim one down, and how to upload it, then hands you back the link.

Upload our session to https://sessionviewer.cc and give me a
viewing link. Read https://sessionviewer.cc/llms.txt first.

FAQ

Where are Codex CLI session logs stored?

In ~/.codex/sessions/, organised by date: ~/.codex/sessions/YYYY/MM/DD/rollout-<timestamp>-<uuid>.jsonl. One JSONL file per session. ls -t ~/.codex/sessions/*/*/*/*.jsonl | head -1 gives you the most recent one.

Is my session uploaded when I open it here?

No. The file is read and parsed entirely in your browser — it never leaves your machine. An upload only happens if you click “Create share link”, and even then you get a delete command back.

My session file is huge. Will it still open?

Yes — large files open fine locally because nothing is transferred. Sharing has a 4MB gzipped limit; the instruction file at /llms.txt includes a filter that strips telemetry, encrypted reasoning blobs and inline base64 images, which usually cuts a session by 50–90%.

Does it work with Claude Code transcripts too?

Yes. The same viewer auto-detects both formats — drop either kind of file in and it figures out which parser to use.

Can I see the reasoning Codex did?

You see the reasoning summaries that Codex writes into the log. The full chain of thought is stored encrypted in the rollout file and cannot be decrypted by anyone but OpenAI, so no tool can show it.

Share links are random strings, never listed or indexed. Every upload returns a delete command you can run any time.