Why plain files work best
An Obsidian vault is a folder of Markdown files. Anything that writes a .md file into that folder can feed it, and the notes keep working without an account, a plugin, or a sync service in between. If the transcript is a file you own, nothing upstream can change how you get to it.
Option 1: export one meeting
Open a meeting and choose Export → Export Meeting as Markdown…, then save it into your vault. The file starts with the title, date, duration, and meeting app, followed by the summary and the full transcript. Copy Meeting as Markdown puts the same text on the clipboard. This is fine for the occasional meeting and tedious for every one.
Option 2: a daily note in Obsidian format
In Settings → Day Memory → Daily note export, turn on Export a daily memory note, pick a folder in your vault, and set the format to Obsidian. Each evening (6 PM by default) LokalBot writes or refreshes one note for the day, with date and tags properties: the day's digest, a list of its meetings, app time, and saved moments. A day missed while the Mac was asleep is written later. If you edit a generated note, LokalBot keeps your edits and pauses the export until you move that note or choose another folder.
The daily note lists meetings by time, title, and ID. It doesn't include their transcripts, so pair it with option 3 if you want the full text in the vault.
Option 3: copy every meeting with a script
The bundled lokalbot-cli prints any meeting as Markdown, so a few lines of shell can keep a vault folder up to date. The CLI is read-only and checks the same switch agents do, so first turn on Allow external agents to read your meeting library in Settings → Privacy & Data, and install the CLI from Settings → Advanced → Agent CLI. Then save this as lokalbot-to-obsidian.sh, change the folder, and run it with sh lokalbot-to-obsidian.sh:
# Folder inside your vault vault="$HOME/Documents/Obsidian/Meetings" mkdir -p "$vault" lokalbot-cli list \ | jq -r '.[] | select(.has_summary) | "\(.id) \(.date | fromdateiso8601 | strflocaltime("%Y-%m-%d"))"' \ | while read -r id day; do note="$vault/$day $id.md" [ -e "$note" ] || lokalbot-cli get "$id" > "$note" done
It uses jq, which ships with macOS 15 and later. Each meeting is written once its summary is ready, as a note named like 2026-10-14 ab12cd.md. Existing notes are never overwritten, so edits you make in Obsidian are safe; delete a note to have it written again, for example after you regenerate a summary. Run the script after meetings, or from a scheduled job if you want it hands-off.
Things to know
- Exports are ordinary files. LokalBot doesn't encrypt them, and if you sync the vault with Obsidian Sync, iCloud, or Git, that service's terms now cover your transcripts too.
- Nothing syncs back. Editing a note in Obsidian doesn't change the meeting in LokalBot, and renaming a speaker in LokalBot doesn't update notes already written.
- The vault is readable by your other tools. Any app or agent with access to that folder can read the transcripts, so keep sensitive meetings out of shared vaults.