← All posts

How to save your Claude conversations to Obsidian as Markdown


Your Claude conversations live behind a login; your Obsidian vault is a folder of Markdown files. This is how to get one into the other as clean Markdown — no plugin, no API key.

Why the obvious methods don’t stick

Each way people try to bridge Claude and Obsidian has a catch:

Method Why it fails
Copy-paste Works for one conversation, not as a habit — and it mangles code blocks, tables, and math the moment the conversation gets interesting.
Browser “export” scripts Built on screen-scraping the page’s HTML instead of the real data, so they break every time the site’s markup changes and tend to turn LaTeX into raw $$ soup.
Plugin + local REST API Install a plugin, run a local server, generate a self-signed certificate, paste in an API key. That’s a lot of setup for “save my chats,” which is why most people never finish.

All three treat saving as an export you reach for after the fact — by which point you’ve usually lost the ones you didn’t think to save.

What a good setup needs

Four properties:

  1. It writes plain Markdown into your real vault folder — not a database, not a cloud, not a separate app.
  2. It keeps fidelity — code fences stay code fences, tables stay tables, math stays math.
  3. It doesn’t duplicate — re-running it updates the file in place instead of spawning conversation (3).md.
  4. It doesn’t ask for keys or plugins — an Obsidian vault is already just a folder of Markdown files. Anything that writes Markdown to that folder is “Obsidian support.”

The one people miss

You don't need an Obsidian integration. You need something that writes good Markdown to the folder Obsidian is watching.

Doing it with Carry

Carry is a browser extension that writes to that folder directly. Setup is two minutes:

  1. Pick your vault folder. Point Carry at the same folder Obsidian opens. Captures land in a carry-sync/ subfolder so they don’t scatter through your notes.
  2. Connect Claude. One click. Carry uses the Claude session you’re already logged into — there’s no API key to generate and no developer account to create. It only ever touches claude.ai.
  3. Sync. Carry pulls your recent conversations from Claude’s own API and writes each one as a Markdown file, with frontmatter you can query in Dataview later:
---
title: "Explain CRDTs like I'm five"
source: claude
created: 2026-06-15T10:23:00Z
url: https://claude.ai/chat/abc123
---

**Human**

Explain CRDTs like I'm five.

**Assistant**

Imagine two kids drawing on the same whiteboard...

Because it reads Claude’s API instead of scraping the page, code, tables, and LaTeX come through intact. Because each file is matched by its conversation id, re-syncing overwrites in place — run it as often as you like and never end up with duplicates. Sync is manual for now, and it pulls roughly your last 20 conversations per provider. Once they’re in your vault, they link, tag, search, and drop into Dataview like any other note.

One caveat worth knowing: a few things you see in Claude — like the rendered body of some Artifacts — aren’t returned by the API, so Carry marks them with an honest > [!missing] callout rather than pretending it captured something it didn’t.


Carry is local-only — 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.

Add to ChromeSoonSee how it works