I Vibe Coded a Local ChatGPT Export Viewer (and Had Some Feelings About My Chat History)
March 07, 2026

I exported my ChatGPT data. What arrived was a zip file containing hundreds of loose JSON files, a pile of images, and some .wav recordings of my voice messages. No viewer and no UI. Just a data dump and a polite email.
So I built one (well, vibecoded is one way to put it).
dumpedGPT is a dead-simple local web app for browsing your ChatGPT export. Drop your unzipped data into a dump/ folder, run npm run dev, and open localhost:5173. That's it. Everything stays on your machine - no uploads, no accounts.
What it does
- Dashboard with conversation count, date range, model breakdown
- Searchable conversation list with full thread rendering (markdown, code blocks, inline images, voice playback, chain-of-thought from o-series models)
- Media gallery - masonry grid of every image across all your conversations
- Profile page with your account info, Sora generations, shared conversations, message feedback
- Select individual conversations and export them to JSON (useful if you want to import them somewhere else, like Claude)
I went with Vite + React on Claude's recommendation. Fast to set up, zero config friction. Vibe coded the whole thing in an hour or so.
What I actually found in my export
A lot of junk.
Most of what I'd "deleted" from ChatGPT wasn't in the export. Either they hard delete (possible, but I'm skeptical), or deleted conversations simply aren't included in the export scope. Either way - less data than expected.
Of what was there: mostly stuff I'd ask again in five minutes and get a better, more current answer. The half-life of LLM output is pretty short.
There was one exception - a long book recommendation thread I'd built up over months. Genuinely useful since it was curated for my tastes. That I'll migrate somewhere useful.
Why I actually built this
Subscription consolidation. I'm paying for too many AI tools and my usage is getting fragmented across platforms. I wanted my ChatGPT history in a format I could actually browse before I stepped back from the paid plan.
I'll still use the free tier. But the pull toward centralising on fewer tools is gnawing at me.
There's a broader point here too: data portability is something you should do now, before it gets harder. Depending on where you are in the world and how privacy laws evolve (or don't), the window to get a clean export might not stay open forever. GDPR gives EU users some leverage today. That's not guaranteed everywhere, or indefinitely.
Get it
github.com/mateusz-michalik/dumpedGPT
Requires Node 18+. MIT licensed.