← All posts

How to export your Claude chat history (and Grok, which has no export at all)


Most people find out how fragile their AI chat history is at the worst possible moment — the day they go looking for a conversation that isn’t there anymore. A reset that wasn’t supposed to happen. A cleanup that ran on its own. An account they can’t sign into. By then the export button, if there even is one, is too late.

This is a guide to the whole picture: how to export your Claude chat history the official way, what that export actually gives you, why the history you see in the app isn’t always the history that’s stored, and what to do about Grok — which, as of this writing, has no export feature at all. And then, honestly, what a real backup looks like, because an export usually isn’t one.

Why chat history is more fragile than it looks

It’s tempting to assume that anything you can still scroll back to is safe. It isn’t, and the last few weeks have made that unusually concrete.

In late June, The Register reported that Claude Code users were finding their local chat records mysteriously wiped out. The cause turned out to be a retention setting, cleanupPeriodDays, that defaults to 30 days and runs on startup — deleting session transcripts it judges to be stale, with no warning, no soft-delete, and no recovery path. The underlying reports had been open for weeks. One user, on a GitHub issue about the behavior, had set the retention period to roughly a hundred years and still lost data: “This has cost me months of chat history on a personal project.”

Grok has its own version of this. There are documented cases of Grok conversation history disappearing with no user action — history resets, sync failures, session issues — and the ones caused by platform errors don’t pass through the normal “Recently Deleted” grace window at all. xAI has no recovery mechanism for them. The advice given to heavy users is telling: export weekly, by hand, so you’re never more than a few days from a full copy.

And underneath all of it is the plainest risk of all: an account you don’t control. If access is cut off — a ban, a billing lapse, a policy change — there’s no post-hoc export. You can’t request a copy of your data after you’ve been locked out of the door it lives behind.

None of this is a reason to panic. It’s a reason to keep your own copy.

Claude’s official export, honestly

Claude does have an export, and it’s worth knowing how it works before you rely on it.

In Claude’s settings, under the privacy and data controls, there’s an option to export your data. You request it, Claude assembles it, and some time later you get an email with a download link to a ZIP file. Inside is your account’s conversation data as structured JSON.

That’s genuinely useful for one thing: a compliance-grade snapshot of everything, on the day you asked for it. But as a way to actually keep your chat history, it has real limits:

  • It’s a bulk snapshot, not a living copy. You get everything as of the moment you requested it, and nothing after. Tomorrow’s conversations aren’t in it. To stay current you have to keep requesting.
  • It’s JSON, not something you’d read. The export is built for portability and compliance, not for opening and re-reading. Turning it back into legible conversations — with code blocks and tables intact — takes work or a separate tool.
  • You have to remember to do it. An export only protects the conversations you had before you thought to run it. The ones you’ll wish you had are usually the ones from after.
  • It needs an account you can still access. The export lives behind the same login as everything else. If you’re locked out, the export button is behind the lock too.

It’s a fine fire drill. It just isn’t a smoke detector.

claude.ai and Claude Code are two different histories

Here’s a distinction that trips people up: the conversations at claude.ai and the sessions in Claude Code are not the same store. Exporting one does nothing for the other.

Your claude.ai chats live in your Claude account and come out through the settings export above. Claude Code’s history lives as transcript files on your own machine, under ~/.claude — and those are the files the cleanupPeriodDays cleanup deletes. The account-level export won’t save them, and the code and git history of your project survive the cleanup while the reasoning trail — the design discussions, the debugging context — does not. For a lot of developers, that trail was the artifact.

So “I exported my Claude data” can be true and still leave most of what you care about unprotected. Two stores, two backups.

Grok: there’s no export button

Grok is the starkest case, because there’s nothing official to walk you through. As of this writing there’s no built-in export, and no established extension of any real adoption filling the gap. That leaves the manual options, all of which are exactly as tedious as they sound:

  • Copy-paste, conversation by conversation. Works once. Doesn’t survive contact with a busy week, and it mangles formatting the moment a conversation contains anything structured.
  • Screenshots. Fine for a keepsake, useless for anything you’d want to search, quote, or re-feed to a model later.
  • “Export weekly by hand.” The actual advice on offer — which is to say, do the labor yourself, forever, and hope you never skip the week that mattered.

For a tool people increasingly use for real work, that’s a lot of history sitting on a platform that can lose it with no way to get it back.

What a real backup actually looks like

Once you’ve seen the pattern — fragile stores, exports that arrive as an afterthought, one platform with no export at all — it’s clear what a real backup has to be. It’s the opposite of an export in almost every way:

  • Continuous, not on-demand. It captures conversations as you have them, so there’s never a gap between “the last time I remembered to export” and now.
  • Local, not behind a login. It writes to a folder you own, on your machine, so losing account access doesn’t lose your history.
  • Readable, not a JSON dump. Plain Markdown you can open, search, and link — not an archive you have to decode first.
  • Yours to keep. No waiting for a zip, no download link that expires, no request queue.

An export is what you do after you’ve lost something. A backup is the copy you already have.

Doing it with Carry

Carry is a browser extension built to be that copy. It’s the capture layer for your AI conversations — not another exporter — and here is exactly what it does today, no more:

  • You pick a folder. Carry writes into it directly; nothing goes to a server, and there’s no account to create.
  • You connect the providers you use — ChatGPT, Claude, and Grok. Carry uses the session you’re already logged into, so there’s no API key and no developer account. Grok included: the platform with no export button of its own is a first-class provider here.
  • You open the toolbar popup and sync. Carry pulls your most recent conversations — around the last twenty per provider — and writes each one as a clean Markdown file, with the code blocks, tables, and math intact, because it reads each provider’s own data rather than scraping the page.
  • Re-syncing updates in place. Each file is matched to its conversation, so running it again overwrites rather than spawning conversation (3).md. You can run it as often as you like.

Today that sync is manual — you click it. Automatic, ambient capture is on the way, but it doesn’t ship yet, and there’s no point pretending otherwise. Even manual, though, it changes the shape of the problem: your Claude and Grok conversations become Markdown files in a folder you control, readable and searchable, no export request required. (If Obsidian is where your notes live, point Carry at your vault — there’s a dedicated walkthrough for that.)

The history you’d miss is rarely the history you remembered to export. Keep the copy before you need it.


Carry is local-only and open-source at its core — no server, no account, and only the providers you connect. It syncs Claude, ChatGPT, and Grok into your own folder as Markdown — see how it works to get started.

Carry it home.

Sync your ChatGPT, Claude, and Grok conversations into your own folder — as clean Markdown, local-only.