Download
Browse the docs

File format

Last updated 20 October 2026

How MindLake stores each note as a plain Markdown file with YAML frontmatter, what the other files in your vault are for, and what it keeps outside the vault.


One note, one file

Each note is a .md file named after its title, in the folder it’s filed in; notes you haven’t filed are in Inbox. If the folder already has a file with that name, MindLake adds the first eight characters of the note’s id, as in Weekly sync 5e1f3c2a.md. Renaming a note renames its file and updates [[links]] to it across the vault.

A note has three parts: frontmatter between two --- lines, the body, which starts with the title as a # heading, and a ## Transcript section at the end. Here is a recorded meeting:

Work/Weekly sync.md
---
id: 5E1F3C2A-7B4D-4C8E-9A61-2F0D8B3E4C57
title: Weekly sync
created: 2026-09-21T09:30:00Z
updated: 2026-09-21T10:12:44Z
duration_minutes: 31
duration_seconds: 1874
source: inPerson
audio_file: Weekly sync.wav
folder: Work
participants: [Sam Carter, Priya Shah]
tags: [team, launch]
speakers: ["Speaker 1 => Sam Carter", "Speaker 2 => Priya Shah"]
---

# Weekly sync

The launch review moves to Thursday.

- [ ] Send the updated timeline @sam 📅 2026-09-24 ⏫
- [x] Book a room for Thursday ✅ 2026-09-21

## Transcript

Sam Carter: Morning. Shall we start with the launch date?

Priya Shah: Yes. Thursday works for the review.

Frontmatter

MindLake writes these keys in this order, and leaves out any that a note doesn’t use.

KeyMeaning
idThe note’s permanent identifier. It never changes, even when you rename the note.
titleThe title, matching the # heading at the top of the body.
createdThe note’s date, in ISO 8601 (UTC). Older files may use date instead, which MindLake still reads.
updatedWhen the content last changed. If two copies of a note turn up, the newer one wins.
duration_minutesThe recording’s length in whole minutes, or 0. duration_seconds, present only with a recording, gives it in seconds.
sourceThe note’s type: inPerson (Meeting), thought (Idea), plan (Plan), details (Reference) or media (Media).
audio_fileThe file name of the note’s recording, in the same folder.
calendar_eventThe calendar event the note belongs to, by the calendar’s own id.
pinnedtrue when the note is pinned.
folderWhere the note is filed. If this disagrees with the file’s location, the location wins.
typeA type label of your own, for a type that isn’t one of the five.
participantsThe people in the note, such as attendees and named speakers.
tagsThe note’s tags.
sourcesThe note’s sources, as paths from the top of the vault.
sources_usedSources already used in the note. transcript_used: true says the same of its transcript.
sources_logA readable line per source: its name, kind, stage and file paths.
speakersThe name, and contact if linked, given to each speaker the transcriber found, such as Speaker 1.

The transcript section

Everything after the first ## Transcript heading is the note’s transcript, so don’t use that heading for anything else. There’s one paragraph per turn, each starting with the speaker and a colon, and every turn has its own line, a short reply included. Naming a speaker changes their label there and records the name in speakers. A note with no transcript has the line _No transcript yet._ under the heading.

Tasks

A line starting - [ ] is a task, wherever it sits in a note, and - [x] is a done one. Details go after the text as plain-text emoji tokens that other task tools read too:

TokenMeaning
📅 2026-09-24Due date
⏳ 2026-09-22Scheduled date
✅ 2026-09-21The day it was done. MindLake adds it when you tick a task on the Tasks page, and removes it when you untick it.
⏫ 🔼 🔽 ⏬High, medium or low priority, or Backlog: a real task that isn’t for now
🔁 every weekHow it repeats, in words after the symbol
#tag @personTags and people, kept in the text. A task also carries its note’s tags.

The quick-add bar on the Tasks page turns words such as “tomorrow” or “p1” into these tokens for you. See Tasks.

Recordings and word timings

A note’s recording sits beside it under the same name, such as Weekly sync.wav next to Weekly sync.md, and audio_file names it. Renaming the note renames the recording too.

After transcription, Weekly sync.words.json joins them. It holds each word’s timing and confidence and the speaker names, which is what lets MindLake play a word when you click it, on any of your Macs. If a transcription pass hears no speech in the recording, the file says so instead, tied to the recording’s size, so MindLake stops offering to transcribe it; a different recording later saved under the same name isn’t taken for silent. MindLake writes this file; leave it as it is.

Keep audio, in Settings ▸ Audio ▸ Recordings, decides how long recordings stay. When one is removed, its transcript stays in the note.

Sources

Files you attach to a note live in the vault’s Sources folder, in a folder named after the first eight characters of the note’s id in lower case: Sources/5e1f3c2a for the note above. Text MindLake pulls out of a file sits beside it as the whole file name plus .extracted.md, as in report.pdf.extracted.md. The sources key lists them, and nothing in Sources ever shows up as a note. See Sources.

Pictures and files in a note

A picture, video or other file shown in a note is a line of its own, written ![name](path) or ![[path]]. How it’s laid out is saved in that line, after a |: wide shows it full width on its own row, and 2x2 lays out the group of files it sits in as two big columns instead of small tiles. Full Width and 2×2 Grid, in the right-click menu or the buttons you see when you point at one, write these for you.

In a note
![Whiteboard|wide](whiteboard.jpg)
![[demo.mp4|2x2]]

Lists and canvases

A list is a folder, not a single file. Its rows are in data.csv, its columns and their types in schema.json, and any text you write under the grid in notes.md. Any app that reads CSV can open the rows. A canvas is one .canvas file in the open JSON Canvas format, which other tools read too.

Clients/Leads/
data.csv
schema.json
notes.md

Locked notes

Locking a note replaces its .md file with an encrypted .mdenc file in the same folder, named by the note’s id rather than its title. Only the id and the last-updated time can be read without the key; the title, frontmatter, body and transcript are all inside the encryption. A recording on a locked note isn’t encrypted. See Notes and the editor.

Other files

File or folderWhat it holds
InboxNotes you haven’t filed.
ScreenshotsScreenshots, unless you attach them to a note.
Screen RecordingsVideos of the screen you record from the menu bar. No note is made.
VoiceAudio you record with Voice in the menu bar, without making a note.
.originalsHidden, beside a picture you’ve marked up: its untouched original.
ChatsConversations with the AI assistant, one Markdown file each.
_TemplatesNote templates. Pick another folder in Settings ▸ Editor ▸ Templates.
snippets.jsonYour snippets.
settings.jsonA copy of your settings, read back by a new install of MindLake.
lexicon.txtNames and terms transcription checks against, one per line.
.mindlakeHidden. Marks the folder as a vault.
.mindlake-mirror.jsonHidden. The vault folders mirrored with git, if you use synced folders.

Kept outside the vault

Some things MindLake keeps on each Mac, outside the vault, so they never sync or travel with it. Paths are in your user Library.

WhatWhere
ContactsMindLake’s database in Application Support/Mindlake. They stay on that Mac and never sync.
Search indexApplication Support/Mindlake/Search/index.sqlite. It is rebuilt from your notes, and the search-by-meaning half (off unless you turn it on) is made on the Mac with macOS’s own sentence model.
Clipboard historyApplication Support/Mindlake/clipboard-history.json, with macOS file protection: text only, the last 200 items. Turning it off clears it.
Screenshot text indexCaches/co.goodanalysis.mindlake/capture-text: the text read from your pictures for /ss, read on the Mac.
AI edit historyApplication Support/Mindlake/EditHistory: the last 20 versions of each note before an AI edit.
Synced folder pairsApplication Support/Mindlake/mirror.json, for that Mac only.
Sources thumbnailsCaches/Mindlake/SourceThumbs: the pictures the Sources grid shows, so it fills in at once after a relaunch. Once the folder passes 400 MB, the oldest go until it is under 300 MB.
SettingsThe Mac’s own preferences for MindLake, with a copy in the vault’s settings.json.
AI keys, sign-ins and the licenceThe macOS Keychain.