ThreadRecall
How to

How to export your ChatGPT history into Obsidian (three ways)

Your best thinking is scattered across ChatGPT threads while your vault sits empty of it. Here are the three real ways to fix that, from fully manual to fully automatic, with the tradeoffs stated plainly.

Vertical blue thread image for exporting ChatGPT history to Obsidian

If you use both ChatGPT and Obsidian seriously, you have probably felt the gap between them. The conversations are where the thinking happens. The vault is where thinking is supposed to live. And there is no official bridge between the two.

There are three real ways to close that gap. One is manual and free. One is tedious but precise. One is automatic. I will walk through all three honestly, including the one I built.

Way 1: The official export, converted to Markdown

ChatGPT will not export Markdown, but it will export your entire history as data, and the community has built converters for it.

Step 1: Request the export

  1. In ChatGPT, click your profile icon and open Settings.
  2. Go to Data Controls and click Export data, then Confirm export.
  3. Wait for the email from OpenAI (usually minutes to hours, officially up to 7 days), then click Download data export. The link expires after 24 hours.

The ZIP contains conversations.json, which holds your full message history with timestamps and metadata. The steps are documented in OpenAI's help center. I cover the export in more detail in the guide to finding old ChatGPT conversations.

Step 2: Convert conversations.json to Markdown

As of 2026 there are several maintained community options:

  • Nexus AI Chat Importer, an Obsidian community plugin that imports ChatGPT export files directly inside Obsidian and organizes conversations into Markdown notes by date. Recent versions specifically support the current ChatGPT export format. The project lives on GitHub.
  • Python conversion scripts like chatgpt-markdown, which take conversations.json and write one Markdown file per conversation. Good if you are comfortable running a script and want control over the output.
  • Standalone converter tools exist too, some paid, that track your conversations across repeated exports and preserve ChatGPT-specific details. Search for them once you know this category exists; the landscape shifts.
The honest tradeoff: this way is free and gets your whole history, but it is a snapshot. Every new conversation means requesting a fresh export, waiting for the email, and re-running the import. Most people do it once, feel good about it, and never do it again. The vault then drifts out of date permanently.

Way 2: Copy-paste per conversation, with a template

The zero-tooling way. For any single conversation that matters, select the text in ChatGPT, paste it into a new Obsidian note, and clean it up.

It works much better with a consistent template. Create a template note in Obsidian with:

  • Frontmatter properties for source (chatgpt), date, and topic, so you can filter these notes later.
  • A one-line summary at the top, written by you: what this conversation actually settled.
  • Headings or callouts to separate your prompts from the responses, because a wall of pasted text with no speaker boundaries is nearly unreadable a month later.

I want to be honest about this one: it is tedious, and the tedium is the failure mode. Copy-pasting one important conversation takes five minutes. Copy-pasting every useful conversation is a part-time job nobody keeps doing. This way is right for the occasional high-value thread, not for your history.

Where it wins: total control. You curate what enters the vault, you trim the dead ends, and you add your own summary. No tool matches a human editor for signal-to-noise.

Way 3: Automatic sync with ThreadRecall

This is the one I built, so judge the framing accordingly.

ThreadRecall is a menu bar app for Apple Silicon Macs (macOS 13 or later, currently a free beta) that captures your AI conversations locally as they happen and can sync them into your Obsidian vault as structured Markdown. No export requests, no scripts, no pasting.

  • Live capture, local storage. Conversations from the ChatGPT desktop app are captured into a local SQLite database on your Mac. Nothing leaves the machine.
  • Structured notes, not text dumps. Each synced conversation gets frontmatter with source, topic, pinned, and has_code properties, compatible with Obsidian Bases, so you can build filtered views of your AI history inside Obsidian.
  • Readable formatting. Speaker turns use Obsidian's built-in callouts, so prompts and responses are visually separated instead of running together.
  • Topic pages. Conversations are grouped by topic, so related threads link together in your vault instead of piling up as loose files.
  • Not just ChatGPT. The same sync works for Claude, Gemini, Codex, and Perplexity conversations, so the vault becomes one archive across every AI tool you use.
  • Your history too. A one-time historical import of the official ChatGPT export is included, so way 3 covers what way 1 covers, and then keeps going.

The honest limits: it is macOS-only, Apple Silicon only, and it captures from the desktop apps. If you live on Windows or only use ChatGPT in a browser tab, way 1 remains your best option.

The three ways, side by side

QuestionWay 1: Export + convertWay 2: Copy-pasteWay 3: ThreadRecall sync
EffortModerate, repeated for every refreshHigh, per conversationSet up once, then automatic
CoverageFull history at export timeOnly what you pasteHistorical import plus everything new
Stays currentNo, snapshot onlyOnly with disciplineYes, syncs as you work
Note structureDepends on the converterWhatever you buildFrontmatter, callouts, topic pages
Other AI appsChatGPT onlyAnything, manuallyClaude, Gemini, Codex, Perplexity too
CostFreeFreeFree beta, macOS on Apple Silicon

Effort

Way 1: Export + convert
Moderate, repeated for every refresh
Way 2: Copy-paste
High, per conversation
Way 3: ThreadRecall sync
Set up once, then automatic

Coverage

Way 1: Export + convert
Full history at export time
Way 2: Copy-paste
Only what you paste
Way 3: ThreadRecall sync
Historical import plus everything new

Stays current

Way 1: Export + convert
No, snapshot only
Way 2: Copy-paste
Only with discipline
Way 3: ThreadRecall sync
Yes, syncs as you work

Note structure

Way 1: Export + convert
Depends on the converter
Way 2: Copy-paste
Whatever you build
Way 3: ThreadRecall sync
Frontmatter, callouts, topic pages

Other AI apps

Way 1: Export + convert
ChatGPT only
Way 2: Copy-paste
Anything, manually
Way 3: ThreadRecall sync
Claude, Gemini, Codex, Perplexity too

Cost

Way 1: Export + convert
Free
Way 2: Copy-paste
Free
Way 3: ThreadRecall sync
Free beta, macOS on Apple Silicon

Which way should you pick?

Pick way 1 if you want a one-time archive

You want your history backed up in your vault, you do not mind that it goes stale, or you are not on a Mac. The official export plus the Nexus importer or a conversion script does the job for free.

Pick way 2 if only a few conversations matter

You have a handful of genuinely important threads and you would rather curate than automate. Five minutes per conversation, full editorial control.

Pick way 3 if you want the vault to stay current

You use AI tools daily and you want your Obsidian vault to reflect that work without you doing anything. That continuous, structured, local pipeline is exactly what ThreadRecall exists for.

Want your AI conversations in Obsidian automatically?

ThreadRecall captures ChatGPT, Claude, Gemini, Codex, and Perplexity conversations locally and syncs them to your vault as structured notes. Free beta, early access open.

Join early access