← All posts

How to save and export your ChatGPT conversations (2026): every method, honestly


Most of us treat ChatGPT like it will always be there. The chat history is right there in the sidebar, searchable, one click away. Until one day it isn’t — and then you find out how much of your thinking you’d quietly left in someone else’s building.

This is a practical guide to getting your ChatGPT conversations out and keeping your own copy. It covers every reasonable method — the official export, copy-paste and print, extensions and scripts — with the honest tradeoffs of each. No single method is best for everyone, so the goal here is to help you pick the one that fits how you actually work.

Why bother saving them at all

The short version: your history is only as durable as a policy you don’t control, and that policy has moved in both directions lately.

It can vanish. There’s a well-known Hacker News post from someone who lost three years of ChatGPT history overnight, tried to recover it through OpenAI’s own export tool, was told the export required an active account to even request, and ended up building their own backup extension going forward. It’s not an isolated shape of story — a plant-sciences professor toggled off a data-consent setting and lost his entire saved history, which OpenAI support confirmed was permanent.

It can also be kept against your wishes. In the OpenAI–New York Times litigation, a court ordered OpenAI to preserve output logs that would otherwise have been deleted, and a later order compelled the production of 20 million de-identified ChatGPT logs. This applied to ordinary users, not just enterprise accounts.

You don’t need to feel anxious about any of this. The point is simply that “it lives in the sidebar” and “it’s yours” are two different things. A local copy you control is the calm answer to both directions — deletion and disclosure alike.

Method 1: ChatGPT’s official data export

OpenAI has a built-in export. In ChatGPT, go to Settings → Data controls → Export data, confirm, and you’ll get an email with a download link. Inside the archive is a chat.html file you can open in a browser, plus the underlying JSON.

This is the “official” answer, and for a full one-time archive of everything, it’s worth knowing about. But it has real limitations that catch people out:

  • The download link expires in 24 hours. If you request the export and don’t grab it that day, you start over.
  • A second request silently cancels the first. If you request an export, then request another before the first arrives, OpenAI only fulfills the most recent one — the earlier request is quietly dropped, and no download is ever produced for it.
  • The format changed with no announcement. Around April 2026, OpenAI quietly changed the export file structure — reports describe conversations coming back blank, wrong summaries, and internal data leaking into the visible text. The archive now ships as multiple conversations-###.json files rather than one. There was no changelog and no version marker.
  • It’s built for compliance, not reading. The raw JSON is a data-portability dump. Making it into something you’d actually want to read or search usually means running a script against it.

So the official export is genuinely useful as an occasional full backup — but it’s a manual, all-or-nothing, expiring process, and its output isn’t something you’ll browse. It’s insurance you file away, not a way to live with your conversations day to day.

Method 2: copy-paste and print-to-PDF

Sometimes you just want this one conversation saved, and the simplest tools are fine.

Copy-paste into a note works for a single, short exchange. The catch is fidelity: the moment a conversation has code blocks, tables, or math in it, plain copy-paste tends to mangle them — you’ll lose the code fences, the table structure collapses, and LaTeX comes through as raw symbols.

Print to PDF (via your browser’s print dialog, “Save as PDF”) is better for keeping the look of a conversation — it preserves formatting as it appeared on screen. It’s a good choice when you want a fixed, shareable record of one conversation: a receipt. The tradeoff is that a PDF is a dead end for reuse. You can’t easily search across a folder of them, link between them, or pull a snippet back out as text without it fighting you.

Both methods are perfectly reasonable for the occasional keeper. Neither is a habit you can sustain across hundreds of conversations, and that’s the honest limit: they’re for the few chats you consciously decide to save, not for the many you’ll wish later that you had.

Method 3: browser extensions and scripts

This is the busy middle. There are dozens of extensions and scripts that promise one-click export from ChatGPT to Markdown, PDF, or Notion — new ones appear constantly. They’re popular precisely because the built-in export is so awkward.

Most are built on screen-scraping: they read the conversation out of the page’s HTML rather than from any real data source. That has two consequences. First, they break whenever the site’s markup changes, which is often. Second, scraping the rendered page tends to be exactly where fidelity dies — LaTeX turns to $$ soup, code blocks lose their fences.

The bigger issue with extensions is trust, and it deserves a clear-eyed look. An extension that can read your ChatGPT conversations can, by definition, read your ChatGPT conversations — and extensions update themselves silently after you install them. In December 2025, a popular VPN extension and several siblings began harvesting AI chat content after a routine auto-update turned a previously benign tool malicious. Separately, two extensions impersonating AI assistants were caught reading conversations out of the page and exfiltrating them to a remote server. In both cases the attack vector was the same: a tool you trusted at install time shipped new, hostile code later.

This doesn’t mean “never use an extension.” It means know what to look for:

  • Open-source, so the code can be read rather than taken on faith.
  • Local-only, with no server it phones home to — nothing to exfiltrate to.
  • Minimal, legible permissions — access scoped to the one site it needs, not “read and change all your data on all websites.”
  • A clear reason for every permission it asks for.

If an extension can’t answer those, the convenience isn’t worth it.

Doing it with Carry

Carry is a browser extension built to be the honest version of Method 3 — a capture layer for your AI conversations, not another exporter you run and forget.

Here’s what it does today. You pick a folder — a normal folder on your machine, or your Obsidian vault, since a vault is just a folder of Markdown. You connect ChatGPT with one click; Carry uses the session you’re already logged into, so there’s no API key and no developer account, and it only ever touches the provider’s own site. Then you open the toolbar popup and sync. Carry pulls in your most recent conversations — roughly the last 20 per provider — and writes each one as a clean Markdown file:

---
title: "Debugging a flaky test in CI"
source: chatgpt
created: 2026-07-01T14:12:00Z
url: https://chatgpt.com/c/abc123
---

**Human**

Why does this test pass locally but fail in CI?

**Assistant**

A few usual suspects when a test is green locally and red in CI...

Because each file is keyed to its conversation, re-syncing updates the file in place instead of spawning conversation (3).md — so you can run it as often as you like and never collect duplicates. It’s open-source, local-only, and asks only for access to the providers you connect.

Two honest notes. Today, syncing is manual — you open the popup and click; automatic, ambient capture is something we’re working toward, not something that ships yet. And Carry currently reaches your recent conversations, not your entire back-catalog, so for a full historical archive of everything, OpenAI’s official export (Method 1) is still the tool for that job. Carry is for keeping your own copy of the conversations you’re having now, going forward.

Keeping the habit

Whichever method you choose, the thing that makes saving stick is the destination. Save conversations into a plain folder, or into Obsidian, and they stop being a transcript you’ll never reopen. They become notes you can search, link, and tag next to everything else you keep — part of your actual knowledge base rather than a chat history you don’t control.

The whole point is to stop deciding, conversation by conversation, whether something is “worth saving.” Pick the method that fits, point it at a folder you own, and let your conversations already be there when you go looking.


Carry is local-only and open-source at its core — no server, no account, and only the providers you connect. It syncs ChatGPT, Claude, 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.