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.
If a one-time export is what you’re after, the Claude export options page compares each route and what it saves, projects and artifacts included.
What a good setup needs
Check any tool against four properties before you trust it with your history:
- Plain Markdown in your real vault folder. Not a database, not a cloud, not a separate app.
- Fidelity. Code fences stay code fences, tables stay tables, math stays math.
- No duplicates. Re-running updates the file in place instead of spawning
conversation (3).md. - No keys or plugins. A vault is already a folder of Markdown files, so anything that writes Markdown there is “Obsidian support.”
You don’t need an Obsidian integration. You need something that writes good Markdown to the folder Obsidian is watching.
Set it up with Carry
Carry is the browser extension we built to write to that folder directly. It reads Claude through the session you’re already signed into, so code, tables, and LaTeX come through intact. Nothing is uploaded; it processes chats on your device.
- Install Carry and pick the folder Obsidian opens, or a folder inside the vault.
- Connect Claude, and stay signed in at claude.ai.
- Let it run. Automatic capture is on by default and saves new Claude chats in the background while Chrome is open.
Pick your folder
Connect providers
Then it’s automatic
What you get in the vault
One .md file per conversation under carry-backup/claude/, named by date and title. Frontmatter carries the fields Obsidian and Dataview can use, and the body is the conversation as you saw it:
---
conversation_id: "0d6c2c1e-…"
source: claude
type: conversation
title: "Planning the Atlas migration"
aliases:
- "Planning the Atlas migration"
tags:
- capture/claude
created: 2026-06-12T09:41:07
updated: "2026-06-12T10:02:55.120Z"
synced: 2026-06-12T10:05:00
url: "https://claude.ai/chat/0d6c2c1e-…"
message_count: 14
capture_version: 2
content_hash: sha256:9f2c…
---
**Human**
Compare the two migration paths for Atlas.
**Assistant**
Here's a table of both paths…
Re-running matches the file by conversation_id, so a renamed note stays the same note, and a conversation that changed in Claude updates in place. The aliases field means [[Planning the Atlas migration]] autocompletes despite the dated filename.
Carry saves your recent window first: the latest 5 conversations in the 14-day trial, up to 25 with a license, and everything back to your first chat with the licensed full-history backfill. It runs on Chrome and Chromium browsers only.
Common questions
Do I need an Obsidian plugin or API key?
Will it create duplicates if I run it twice?
Does it save Claude Code sessions too?
Are my conversations sent anywhere?
Carry processes chats on your device and never uploads them. Verified compatibility settings download from carry.md, with an off switch. See privacy details.
Save every conversation.
Sync your ChatGPT, Claude, and Grok conversations into your own folder — as clean Markdown, processed on your device.