Skip to content
Graphophone

Exporting to Markdown

One-button export to a plain folder of .md files. Lock-in is a non-goal.

Lock-in is a non-goal. Graphophone lets you export your entire vault to a folder of plain Markdown files, at any time, on every tier, for free. Every entry becomes a .md file. Its title, dates and tags become YAML frontmatter. Photos are written to one attachments/ folder at the top of the export, and the entries that use them link to it.

How

  1. Settings → Vault → Export to Markdown.

  2. Pick a destination folder.

  3. Graphophone writes every entry into a dated tree — 2026/05/27/2026-05-27-0814-calm-morning-3f9a2b1c.md — using the date and time you saw when you wrote it, not UTC. The trailing eight characters come from the entry's id, so two entries written in the same minute with the same title never collide.

Exporting again to the same folder overwrites the same files rather than piling up copies. Anything Graphophone cannot decrypt is reported to you and skipped; one damaged entry never costs you the export of everything else.

What you get

Every file looks like this:

2026/05/27/2026-05-27-0814-calm-morning-3f9a2b1c.md
---
id: 0193a1cb-eb8a-7be7-9d72-fc91fc62a39d
created: 2026-05-27T08:14:00+02:00
updated: 2026-05-27T08:21:33+02:00
title: "Calm morning"
tags:
  - "morning"
  - "mood:calm"
---

A peaceful start. I felt grateful and rested. Coffee was good.

The body is your text, byte for byte, after one blank line. Graphophone does not add a heading — the title is a frontmatter field, and title: and tags: are left out entirely when an entry has none. Timestamps carry the offset your device was in, so 08:14 in the file is the 08:14 the app showed you.

A conversation is exported as one readable transcript with each side labelled in your language, and if a long thread rolled over into several stored entries they are reassembled into that single file. What Graphophone remembers about you across threads is written alongside as memory.md.

Opening it in Obsidian

The export is a folder of ordinary Markdown, so you can point Obsidian at it — or drop it into a vault you already have — and every note opens, with tags read as Obsidian's own tag property and the dates and id as ordinary properties.

Tags Obsidian will not list

One honest caveat, because it is your data and you should know where it lands. Obsidian's tags accept letters, digits, _, - and /, and must contain something other than digits. Graphophone's tags are free text, and the mood you set on an entry is exported as mood:calm. A tag with a space, a colon or only digits is still in the file and still perfectly readable — Obsidian just will not list it in its tag pane. We would rather that than quietly rewrite the tags you typed to suit another app.

Going the other way

Settings → Vault → Import from Markdown reads Markdown files back in — a Graphophone export, notes out of an Obsidian vault, or anything else with the same shape. Pick one or more files; the parsing happens on your device.

Graphophone recognises a file it has already imported by its contents, not by the id in the frontmatter, so re-importing an untouched export adds nothing and tells you so. Edit a file first and it comes in as a new entry sitting beside the original: an import never overwrites something already in your journal, which means it can never destroy the version you have. Editing inside Graphophone is the way to change an entry in place.

Related