A local converter that turns your ChatGPT, Claude and Gemini data exports into Markdown files ready for Obsidian.
Everything runs in your browser. Your files stay on your computer, nothing is uploaded.
Try it now: phil-pje.github.io/Free-your-chat
If you use AI assistants every day, your chats slowly become a real knowledge base: ideas, decisions, drafts, things you figured out once and don't want to figure out again.
Getting that knowledge back out, though, is not trivial. Official exports are built for machines, not for people: Claude, for example, gives you a JSON file on a single line. If you don't know what a JSON is, your own conversations are effectively locked away.
Free Your Chat turns those exports into plain Markdown notes you can read, search and keep in Obsidian, or in any folder, on your machine, forever. Your conversations, in a format that belongs to you.
- Reads ChatGPT exports (
conversations.json,chat.htmlor the whole zip), Claude exports (conversations.json+projects.json) and Gemini (MyActivity.jsonfrom Google Takeout) - Shows your conversations in a local interface (reading or table view)
- Search, group by source / project / month, pick what to export
- Reorganize chats into projects with drag & drop
- Generates
.mdnotes with YAML frontmatter, organized by source, project and date - Builds a
Chat/index.mdindex note - Interface in English and Italian (IT/EN toggle, auto-detected from your browser)
- Installable as an app (PWA), works offline
- Zero external dependencies: the parsers, the Markdown generator and the ZIP reader/writer are all written from scratch in this project
Minimal typographic interface, inspired by Nous Research: monospace, petrol ink on white paper, dashed rules, no shadows. Light and dark theme (the negative: midnight-blue paper, light ink).
Open the online page or download the
repo and double-click index.html (works offline too).
Drag your export file onto the page:
- ChatGPT: the whole export
.zip, orconversations.json/chat.html - Claude: the export
.zipor the extracted.jsonfiles - Gemini:
MyActivity.jsonfrom Google Takeout
When you're done you can:
- save directly into a folder (Chrome and Edge): pick a folder inside your Obsidian vault
- download a ZIP with all the Markdown files
Loaded chats survive a page refresh (local IndexedDB); remove them any time from Options → Clear loaded data.
From the online page: browser menu → Install Free Your Chat (on mobile: "Add to Home screen"). The app opens in its own window and works without a connection.
Normally not needed: double-clicking index.html is enough. Use the local
server only if your browser blocks something when opening the file directly, or
to try the PWA locally (the service worker requires http):
npm startThen open http://localhost:8123. No external dependencies needed.
npm test # automated tests (parsers, markdown, zip, i18n)
npm run build # rebuilds index.html from sources
npm start # optional local server| File | Purpose |
|---|---|
index.html |
ready-to-open app |
src/template.html |
interface source |
src/shell-prefix.html |
single-file bundle loader |
parsers.js |
export readers |
markdown.js |
Markdown generation |
zip.js |
ZIP reader/writer |
build.js |
rebuilds index.html |
serve.js |
optional local server |
manifest.webmanifest + sw.js + icons/ |
PWA and offline support |
test/run-tests.js |
automated tests |
Everything happens locally: no data ever leaves your browser. No analytics, no cookies, no network requests (besides loading the page itself).
Issues and pull requests are welcome. One rule: never include real chat
exports, personal .zip files or backup folders. The .gitignore keeps
them out.


