If you live in Obsidian, every long ChatGPT conversation is a note that wants to exist in your vault. Here’s the workflow that takes the friction out.
The end state
Every ChatGPT conversation worth keeping becomes:
- A
.mdfile in~/vault/AI/ChatGPT/(or wherever you want). - Filename like
2026-05-09 - rust async pitfalls.md. - YAML front matter: title, model, date, platform, tags.
- Properly nested headings, code fences with language tags, math delimiters preserved.
- Linked to your other notes via Obsidian backlinks.
- Searchable via Obsidian’s full-text search.
The tools
- Obsidian — the vault.
- ChatExport AI — Chrome extension that exports ChatGPT conversations to clean CommonMark Markdown.
- Three optional Obsidian plugins (only the first is essential):
- Templater — for the file-naming + front-matter ritual.
- Dataview — query your AI notes by tag, model, date.
- Smart Connections — semantic search across your AI notes.
Step-by-step
Step 1: Export the conversation as Markdown
Open the ChatGPT conversation. Click the ChatExport AI toolbar icon. The export sidebar opens.
Pick Markdown (.md). Toggle on Front matter so the export includes YAML at the top.
Click Export. The .md downloads.
Step 2: Drop into your vault
Move the file into ~/vault/AI/ChatGPT/. Or whatever folder structure suits you.
The default filename is chatgpt-2026-05-09-12-34-56.md. You can rename it to something searchable like 2026-05-09 - rust async pitfalls.md. Templater can automate this.
Step 3: The front matter ChatExport AI adds
---
title: "Rust async pitfalls — Tokio runtime questions"
platform: ChatGPT
model: GPT-5
exported: 2026-05-09T12:34:56Z
url: https://chatgpt.com/c/abc123...
tags: [ai, chatgpt, rust]
---
The tags field starts with [ai, chatgpt]. Add your own (rust, async, tokio) so Dataview can find related notes later.
Step 4: Review and prune
Long ChatGPT conversations have dead-ends. Open the note in Obsidian, delete the dead-end exchanges, keep the substance.
Or do this before exporting — ChatExport AI lets you select which messages to include via a per-message checkbox. The “trim before export” path saves you the editing step in Obsidian.
Step 5: Link to other notes
Use Obsidian’s [[wikilink]] syntax to connect the AI note to your project notes:
This came up while working on [[Project Helios]] — see also
[[Tokio runtime variants]] and the original
[[2026-05-08 ChatGPT - tokio task::spawn_blocking notes]].
After two or three weeks, the AI notes become a connected mesh, not a graveyard of one-off chats.
Power moves
Auto-rename via Templater
Templater script that renames a file based on its YAML front matter:
<%*
const file = tp.file.find_tfile(tp.file.path(true));
const meta = app.metadataCache.getFileCache(file)?.frontmatter;
if (meta?.title && meta?.exported) {
const date = meta.exported.slice(0, 10);
const slug = meta.title
.toLowerCase()
.replace(/[^a-z0-9]+/g, '-')
.replace(/^-|-$/g, '')
.slice(0, 60);
await tp.file.rename(`${date} - ${slug}`);
}
%>
Query AI notes via Dataview
TABLE platform, model, exported
FROM "AI"
WHERE platform != null
SORT exported DESC
LIMIT 25
Now you have a dashboard of your last 25 AI conversations, sorted by date, filterable by platform.
Semantic search across AI notes
Smart Connections embeds your notes and lets you search semantically. Useful when you remember the gist of a conversation but not the title.
What about Claude, Gemini, etc.?
Same workflow. ChatExport AI exports Claude, Gemini, Perplexity, and eleven other AI platforms all to Markdown. The YAML platform field tells you which AI gave you the answer.
Why this is worth setting up
The first month is investment. By month three you have a personal AI knowledge base — every research thread, every debugging session, every brainstorm — searchable, linked, and yours. The conversations don’t expire when ChatGPT free-tier history rolls over. The reasoning lives in your vault.
Related
- How to export ChatGPT to Markdown — step-by-step on the export side.
- For writers — Obsidian-first writing workflows.
- For researchers — citation-heavy research archives.