← All posts

How to save your Claude conversations to Obsidian as Markdown


You use Obsidian because you want one place that holds your thinking. You use Claude because that’s where a lot of the thinking actually happens — the messy first drafts, the explanations that finally clicked, the plans you talked your way into.

The problem is that those two places don’t touch. Your vault is your second brain, but a growing share of your second brain is stranded inside a chat history you don’t control. So you do what everyone does: you mean to copy the good ones over, you do it twice, and then you stop.

This is a guide to closing that gap — getting your Claude conversations into Obsidian as clean Markdown, without the usual friction.

Why the obvious methods don’t stick

There are a few ways people try to bridge Claude and Obsidian. Each has a catch:

  • Copy-paste. It works for one conversation. It does not work as a habit, and it mangles code blocks, tables, and math the moment the conversation gets interesting.
  • Browser “export” scripts. Most are built on screen-scraping — reading the page’s HTML instead of the real data. They break every time the site’s markup changes, and they tend to turn LaTeX into raw $$ soup.
  • Plugin + local REST API setups. The more “proper” Obsidian integrations ask you to install a plugin, run a local server, generate a self-signed certificate, and paste in an API key. That’s a lot of setup for “save my chats,” and it’s exactly why most people never finish.

The thing all three have in common: they treat saving your conversation as an export — a thing you reach for after the fact. By then you’ve usually already lost the ones you didn’t think to save.

What you actually want

A good setup has 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 — because an Obsidian vault is already just a folder of Markdown files. Anything that writes Markdown to that folder is “Obsidian support.”

That fourth point is 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 built around exactly that idea — it’s the capture layer for your AI conversations, not another exporter. 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 — so you can run it as often as you like and never end up with duplicates.

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.

Where this leaves you

Once your conversations are Markdown in your vault, they become part of your actual knowledge base. You can link them, tag them, search them, and pull them into Dataview tables next to everything else. The thinking you did in Claude stops being a transcript you’ll never reopen and starts being notes.

The whole point is that you stop deciding, conversation by conversation, whether something is “worth saving.” You just keep your vault, and your conversations are already in 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.