Meeting notes in Obsidian, transcribed on your own computer
Two ways to get meeting transcripts into an Obsidian vault without sending audio to anyone: a local plugin, or an app that writes Markdown into the vault.
If you keep your thinking in Obsidian, the problem with meeting notetakers is not transcription. Transcription is solved. The problem is that the output lands somewhere else — in a web app, behind a login, in a database you can search only with their search box — while everything else you know lives in a folder of Markdown files on your disk.
Plenty of tools will export Markdown. That is not the same thing, and the difference is the whole subject of this guide: an export is a copy that goes stale the moment you edit it, while a vault-native tool treats the files themselves as the record. There are two honest ways to get there, and this guide covers both: a plugin that transcribes inside Obsidian, or an app that records meetings and writes Markdown into your vault. I build one of the apps, so take the comparison for what it is — but the plugins are good, several are genuinely local, and for some people they are the better answer.
Disclosure: I make Samurai Scribe, one of the tools below. Claims about the others come from their own documentation, checked October 2026. Plugins move fast; check the current README before you install one.
What a vault-native meeting actually looks like
Before choosing a route, it helps to know what you want the end state to be. Here is the layout my app writes, as an example of a meeting that is genuinely part of a vault rather than visiting it:
Meetings/
└── 2026-10-14 Design Review/
├── 2026-10-14 Design Review.md ← the meeting note
├── Transcript.md ← timestamps and speakers
├── Summary.md ← from a script or a skill
├── Notes.md ← what you typed
├── _meeting.json ← the app's own record
└── _playback.m4a ← the recording
Four details matter more than the file names.
The meeting note is a normal note. It carries properties — title, date, tags — and you can write under
them. Change the title in Obsidian and the meeting is renamed; change the date and it moves. The link
[[2026-10-14 Design Review]] works from anywhere in your vault, so a project note can reference the meeting it
came from.
Speakers are links. A transcript segment is a heading like ### 12:13.4-12:15.0 [[Alice Chen]], so every
person becomes a page in your vault with backlinks to every meeting they spoke in. That is the kind of thing
Obsidian is for, and it only works if the transcript is a real Markdown file.
You can link a moment, not just a meeting. Because the timestamp is a heading, a link can point at 12:13 in a recording and open it there.
Meetings become queryable. The properties are ordinary YAML frontmatter, so your vault’s own tools can treat a
month of meetings as a table: a Dataview or Bases query listing every meeting tagged #client since September,
sorted by date, is a few lines and needs nothing from the app. A notetaker that exports cannot give you that,
because the thing you would query is a stale copy.
Export is a copy. These files are the database
Most meeting tools will give you Markdown if you ask. You press Export, a file lands in your Downloads folder, and from that moment it is a photograph of what the transcript said when you pressed the button. Rename the meeting in the app and the file does not change. Fix a misheard name in the file and the app never hears about it. Stop paying and you keep the exports you remembered to take.
A vault-native tool inverts that. The Markdown is the record, and the consequences are concrete:
- Edit the note, change the meeting. The meeting note’s
titleproperty is the meeting’s title and itsdateis the meeting’s date. Rename it in Obsidian and it is renamed in the app; change the date and the meeting moves. You are not editing a copy. - Edits come back, even ones made while the app was shut. Change a transcript or a summary in Obsidian at midnight with the app closed, and it is picked up when the app next looks. There is no import step and no conflict dialog, because there is only one copy.
- The index is disposable. The app keeps a search index, and it is a cache: delete it and it rebuilds from the files. Nothing lives only in a database, which is why the files can be edited behind the app’s back at all.
- Deleting the app costs you nothing. No export run, no migration, no lock-in. A folder of Markdown and audio is exactly as readable without the software that made it.
The one rule worth knowing: a transcript has an exact segment format, and the app would rather refuse a transcript
it cannot parse whole than guess at it. Your own ## headings are fine; a ### line starting with a digit has to
stay a segment heading. Renaming a speaker everywhere is safest done in the app, which rewrites every segment at
once.
This is the part that does not show up in a feature comparison, and it is the reason the rest of the article is worth your time. A plugin gets you there by construction, because it is already inside Obsidian. An app has to choose it deliberately.
Route one: a plugin inside Obsidian
If you want everything to happen in the app you already have open, the plugin ecosystem has grown up. Three local options, as of October 2026:
Speech Kit (formerly Local Dictation) is the most complete. It pairs the plugin with a Rust engine its setup wizard installs, so there is no server to run. It does dictation, file transcription with optional speaker labels, translation and read-aloud, and it runs on macOS (Apple Silicon), Windows and Linux. System audio capture needs macOS 14.2 or later; on Windows and Linux it is supported directly. Full feature coverage spans eight languages, and it is in the official community plugin list.
Voice Notes has a meeting mode that captures system audio and your microphone into a live transcript sidebar. It needs a separate Whisper server, run natively on Apple Silicon or in Docker, which is the main setup cost. Speaker labels are macOS 14+ only, and work by comparing system audio against microphone energy — so “me” versus “them” rather than telling two people in a room apart.
AI Meeting Notes is the most hands-on: you point
it at your own Whisper CLI and your own local LLM command, typically ollama run, and it stitches them into a
note with a summary, action items and decisions. There is no bundled model, installation is a manual build, and it
is desktop-only. If you like assembling your own pipeline, this is the one.
There are cloud plugins too, and they are often the slickest. If the audio leaving your machine is the thing you were trying to avoid, read their settings carefully — several default to OpenAI for transcription.
Route two: an app that writes into your vault
The other approach inverts it: a standalone recorder that treats your vault as its storage. You give up living inside Obsidian; you get recording that does not depend on Obsidian being open, and transcription that does not need you to install a server first.
| Speech Kit | Voice Notes | AI Meeting Notes | Samurai Scribe | |
|---|---|---|---|---|
| Runs | In Obsidian | In Obsidian | In Obsidian | Standalone app |
| Setup | Wizard installs engine | Whisper server (Docker) | Your own Whisper + LLM CLIs | Installer, one model download |
| Records meetings | System audio (macOS 14.2+/Win/Linux) | Meeting mode | Mic, system audio where supported | Mic + system audio, separate channels |
| Speakers | Labels on file transcription | ”Me” vs “them”, macOS 14+ | — | Full diarization, including one room |
| Platforms | macOS, Windows, Linux | macOS, or Docker | Desktop | Windows, Apple Silicon Mac |
| Cost | Free | Free | Free | Free · Pro $19 once (beta) |
The honest summary: if you want this inside Obsidian, install Speech Kit. It is free, actively developed, runs on more platforms than my app does, and for dictation and transcribing files it does the job without a second application in your life.
Where a standalone app wins is the meeting itself. Recording microphone and system audio as separate channels with echo cancellation, then separating speakers properly — including several people sharing one microphone in a room — is work that does not fit comfortably inside a note-taking plugin. If your meetings are mostly in-person, or you are on Windows and want speaker labels, that is the gap.
Setting it up with Samurai Scribe
1. Point it at your vault
Install it and choose your existing Obsidian vault as the folder, or a subfolder of it. Obsidian vaults are detected automatically, and the app writes wikilinks and callouts to match. No account, no sign-in.
If you would rather not let a new app near your real vault on day one — a reasonable instinct — point it at an empty folder and open that as a second vault in Obsidian. Everything in this article works the same there, and you can move the folder into your main vault later, because it is only files. Budget about 1.5 GB of disk for the app and its speech models, which download once.
2. Record, and watch the files appear
Audio is captured at the OS layer, so no bot joins your call, and an in-person conversation works the same way. When the run finishes you have the folder above: a meeting note, a transcript with speakers, a summary.
3. Edit in either place
This is where the section above becomes practical: work in Obsidian or in the app, in whichever order suits you, and neither one is holding the authoritative copy hostage.
What this unlocks: agents that can read your meetings
This is the part I did not expect to matter as much as it does. Because the vault is plain Markdown, a coding agent
can work in it — and since v0.61.0 the app writes an AGENTS.md at the vault root so Claude Code, Codex, Cursor
and others know the layout and the rules. It is a real file you can read; it explains that a transcript’s ###
headings are segments, that files beginning with _ belong to the app, and, most importantly:
Never modify or delete audio. A recording is the one thing in a meeting that cannot be regenerated.
Your own file always wins: the guide is written only where no file of that name exists, and the app stops updating it once you edit it. You can also mark folders private, and the guide tells agents not to read them.
What that buys you is the question you could never ask a cloud notetaker:
“Look through all my meetings from August and tell me which customer issues came up repeatedly and were never resolved.”
That works because the answer is in files on your disk, not in someone’s API. The app also has its own assistant whose answers cite the moment in the recording they came from — but the point here is that you are not dependent on it. Any agent that can read a folder can read your meetings.
FAQ
Do I need Obsidian for this to work? No. The app writes plain Markdown into a folder you choose; Obsidian is one good way to read it. Vaults are detected automatically and get wikilinks and callouts, but nothing requires it.
Does it work when Obsidian is closed? Yes — that is the main practical advantage over a plugin. Recording and processing are independent of Obsidian, and your edits are picked up whenever the app next sees them.
What if I edit a transcript by hand?
Fine, within its format. Segment headings have an exact shape and the app refuses a transcript it cannot parse
whole rather than guessing; your own ## headings are fine. Renaming a speaker everywhere is safest from the app,
which updates every segment at once.
What happens to my notes if I stop using the app? Nothing happens to them. They are Markdown files and audio in a folder you chose; there is no export to run before you uninstall, and no feature that stops working because a licence lapsed — the free tier has no time limit.
Will it work with Obsidian Sync or iCloud? Yes, with the usual caveat about audio: recordings are large, and most sync services are happier if you exclude the audio files and sync only the Markdown.
Windows? Windows 10 and 11, 64-bit, and Apple Silicon Macs. No Intel Mac build yet. Speech Kit covers Linux; I do not, yet.
Free or paid? The free tier has no time limit and no minute cap, and includes speaker labels, summaries and the assistant, with the smaller Whisper models and NVIDIA Parakeet. To hear the more accurate Parakeet Ultra on your own audio first, download it in Settings → AI Models → Transcription and try it in Compare models. Pro is $19 once during the beta ($39 after) for the larger Whisper models, Parakeet Ultra, live meeting help and skills that run by themselves.
So should you try it?
Honestly: not everyone should.
Use a plugin if your meetings are mostly calls where you are the only person in the room, you are comfortable with a little setup, and you would rather not run a second application. Speech Kit is the one I would install.
Use something cloud-based if what you actually need is a shared, searchable archive your whole team can read. Local-first tools are worse at that, and pretending otherwise would waste your time.
Try this if any of these is true: your meetings happen in a room with several people and you want to know who said what; you are on Windows and the good local tools keep being Mac-only; or you want your meetings to be files that an agent can read and reason over, without an export step in the middle.
The cost of finding out is a download and about ten minutes. There is no account, nothing is uploaded, and if you decide against it you are left with a folder of Markdown and audio that is yours either way. That is the whole argument for trying it — not that it is the best tool for everyone, but that it costs you almost nothing to see whether it is the right one for you.
Related
- An Otter.ai alternative that works offline — if you are leaving a cloud notetaker and want to know what the ruling against Otter actually said.
- A Granola alternative for Windows that works offline
- A MacWhisper alternative for Windows
- A Wispr Flow alternative that works offline — for dictation rather than meetings.