Read your ChatGPT export offline

You asked ChatGPT for your data and got a ZIP full of unreadable JSON. This turns it into a local static site: full-text search across every message, images inline, LaTeX rendered. No upload, no server, no account.

The demo is a generated archive of 450 invented conversations spanning three years. Your own export never leaves your machine.

Try it in thirty seconds

The demo archive is large on purpose, because that is when a reader stops being a nicety. Four things worth opening:

Your export arrived as conversations-000.json

If your history is large, OpenAI no longer ships a single conversations.json. It arrives split into conversations-000.json, conversations-001.json and so on, sometimes inside a nested ZIP. Viewers that look for one exact filename quietly show you a fraction of your history, or nothing at all.

This tool finds every shard through export_manifest.json, falls back to matching the filename pattern, and opens the inner archive that a Privacy Portal export wraps them in. Each file is streamed, so a 300 MB single-line JSON never lands in memory whole.

What the ZIP does not tell you

Full-text search across a ChatGPT archive with the matching sentence highlighted under each result
Search runs over everything you and the model wrote, with the matching sentence under each hit.

Run it

Python 3.8 or newer, no dependencies.

git clone https://github.com/Gusarovv/chatgpt-export-viewer.git
cd chatgpt-export-viewer
python3 build_site.py ~/Downloads/your-export.zip

The site lands next to the export. Open index.html and read your archive the way you read a website. Copy the folder to a USB stick and it still works.

A ChatGPT conversation rendered as a static page with an inline image and collapsed reasoning steps
Reasoning and tool steps fold into one collapsible block per turn instead of being dropped.