Claude Export to Markdown Converter — Free

Convert a Claude data export into Markdown, one heading per conversation, ready to search or archive. Runs entirely in your browser.

Turning a Claude Data Export Into Something You Can Read

Claude's export is the most straightforward of the AI conversation formats. Each conversation is an object with a name, a creation date and an array of messages in the order they were sent. No branching graph to walk, no hidden nodes to filter, no tool traffic interleaved with the dialogue. If you were writing a parser and got to pick which platform to support first, this would be it.

What makes it unreadable is simply scale and syntax. It arrives as one JSON file holding everything you have ever discussed, with escaped newlines and quotes, and the entire history on a handful of very long lines. This page converts it to Markdown, in this browser tab, with nothing uploaded.

Two Shapes for the Message Body

The one real wrinkle is that message text lives in two different places depending on when the export was produced. Older exports put the whole message in a plain text string. Newer ones use a content array of typed blocks, where a text block carries its own text field and other block types describe attachments or structured elements.

The block array exists because a message is no longer necessarily one uninterrupted piece of prose. It may be text, then an artifact, then more text. Flattening that to a single string was a lossy representation, so the format grew to describe the parts.

Both shapes are read. When the content array is present its text blocks are joined in order; when it is absent or holds no text, the legacy field is used instead. That fallback matters — an export spanning several years can contain both shapes in the same file, and a parser that only handles the newer one silently drops your oldest conversations.

Senders and Labels

The sender field reads human or assistant. Those are accurate but they read oddly in a transcript, so they become User and Claude, which is what the conversation looked like on screen and what a reader coming to the document later expects.

Timestamps are ISO strings and are formatted to a readable date and time, or dropped entirely with the switch above. Whether they help depends on the use: for an archive they anchor the conversation in time, and for something you intend to read straight through they are clutter between every message.

Why Markdown Rather Than Plain Text

Claude's responses are written in Markdown, and a long technical answer is often mostly structure — fenced code, numbered steps, a table comparing options, headings dividing a long explanation. Those marks are stored as literal characters in the export.

Convert to plain text and the marks remain but mean nothing: stray backticks around code that is no longer distinguishable from prose, hash marks at the start of lines that are no longer headings. Keeping Markdown means the structure the response was written with survives into the document. Paste the output into a notes app, a repository, a wiki or a static site and it renders as it was meant to.

What This Is Useful For

Keeping a personal archive that does not depend on a single account remaining accessible. Pulling a design discussion or a debugging session into a project repository next to the code it produced. Searching months of conversations for a solution you know you arrived at but cannot find. Building a personal knowledge base — the output feeds naturally into the text chunker if you intend to embed it for retrieval. Reviewing what you have shared before deciding what to delete.

Getting the Export

In Claude: Settings, then Privacy, then Export Data. You will be emailed a download link once the archive is ready. The zip contains conversations.json along with account metadata; drop the whole archive in and the right file is found automatically, or extract the JSON and use that.

Read Locally, Not Uploaded

An export of your conversations with an assistant is a record of the problems you have been working on, the things you were unsure about, and whatever you pasted in while asking for help. Code, documents, drafts, personal circumstances.

None of it is transmitted. The parser is JavaScript in this tab; the file is read by the browser, held in memory while it is converted, and shown to you. There is no server involved, which means no retention window, no access log, and nothing to delete when you are finished.

ChatGPT exports need a different parser and have their own page at ChatGPT export to Markdown. For anything else, the general chat export page detects the platform on its own.