Codex CLI
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.
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'
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:
shell, exec_command) shown with their real output and exit status, folded until you open them.apply_patch) rendered as a proper colored diff, per file, instead of a *** Begin Patch blob.update_plan) as a checklist, so you can see what Codex thought it was doing and what it ticked off.token_count record.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.
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.
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.
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.
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%.
Yes. The same viewer auto-detects both formats — drop either kind of file in and it figures out which parser to use.
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.