Obsidian
Snag writes plain markdown into your vault folder. No plugin and no account: the vault is a folder in Files, and Snag only touches the folder you pick. Obsidian does not need to be running.
Takes voice, notes and tasks (as checkbox lines). The recording is optional; note photos and files always go in.
Connect
You need the vault in Files: iCloud Drive > Obsidian > your vault, or On My iPhone > Obsidian > your vault.
- Open Settings > Connections > Add a connection > Obsidian.
- Read the intro ("Snag writes plain markdown into your vault folder. No plugin, no account. It only touches the folder you pick.") and tap Choose your vault.
- In the Files picker, pick the vault's own folder (not a folder inside it). Snag keeps a bookmark to this folder only.
- Under "Where should captures land?", pick Today's daily note or A new note each time. A preview shows what a capture looks like.
- Tap Continue, then Make default or Not now.
If the folder cannot be kept, Snag says "Couldn't keep access to that folder. Pick it again."
Where captures land
| Choice | File |
|---|---|
| Today's daily note (default) | The daily note for the day the capture was recorded, for example Daily/2026-10-16.md. Created from your template when it does not exist yet. Each capture is added at the end |
| A new note each time | One new note per capture in the new-notes folder, for example Inbox/Snag 2026-10-16 0941 6f9619ff.md |
A voice capture in the daily note
## Snagged 09:41
<!-- snag:<key> -->
![[snag-20261016-094107-6f9619ff.m4a]]
Book the MOT before the 31st and pack the good headphones
- [ ] Book the MOT before the 31st
- [ ] Pack the good headphones- The heading line comes from the Heading setting.
- The
<!-- snag:<key> -->line marks the capture. A retry that finds it writes nothing, so a capture never appears twice. - The embed line is there only with Keep the audio on.
- One checkbox line per thing to do Snag found.
- With no words recognised, the text reads "(no words recognised on the phone)".
A note in the daily note
The heading, the marker, the typed text, then one ![[...]] embed per photo or file.
A task
One line, added straight after any list line above it:
- [ ] Ring the garage <!-- snag:<key> --> <due date>
Ask about the brake pads- The due date is the Tasks plugin's due-date marker (a calendar emoji, then
2026-10-16) with Due dates for the Tasks plugin on, else(due 2026-10-16). - Task notes follow, indented four spaces.
A new note each time
The same content, with front matter at the top:
---
source: snag
kind: voice
recorded: 2026-10-16T09:41:07
duration: 12.4
---duration is on voice captures only. New notes have no heading line.
Files
Recordings and photos go in the attachments folder, named like snag-20261016-094107-6f9619ff.m4a and snag-20261016-094107-6f9619ff-1-photo.jpg, and are embedded with ![[name]]. Files are written before the note, so an embed never points at nothing.
Options
On the connection page (Settings > Connections > Obsidian):
| Option | Default | What it does |
|---|---|---|
| Where captures land | Today's daily note | Today's daily note, or A new note each time |
| Heading | ## Snagged {{time}} | The line above each capture in the daily note |
| Vault folder | The folder picked | Pick the vault folder again |
| Keep the audio | Off | Saves the recording in the attachments folder and embeds it |
Behind Heading:
| Section | Field | Default | Notes |
|---|---|---|---|
| Daily note | Heading | ## Snagged {{time}} | {{time}} is when the capture was recorded |
| Daily note | Folder | Daily | Match Obsidian's Daily notes settings |
| Daily note | Date format | YYYY-MM-DD | Moment tokens, as Obsidian uses. A / makes subfolders |
| Daily note | Template | empty | A vault path such as Templates/Daily. .md is added when missing |
| New notes | Folder | Inbox | For A new note each time. Empty means the vault's top folder |
| Files and tasks | Attachments | attachments | Recordings and photos |
| Files and tasks | Due dates for the Tasks plugin | On | Off writes (due YYYY-MM-DD) |
| Without a folder | Vault name | empty | For the obsidian:// fallback below |
Date format tokens: YYYY, YY, MMMM, MMM, MM, M, DD, D, dddd, ddd, HH, H, mm, ss, WW, W, and [literal] text.
Template and heading variables: {{title}} (the daily note's name), {{date}}, {{time}}, {{date:FORMAT}}, {{time:FORMAT}}.
Without a folder
If the vault folder cannot be opened (no folder kept, or the bookmark no longer resolves) and a Vault name is set, Snag hands each capture to Obsidian with an obsidian:// link the next time Snag is on screen. The phone must not be locked, and audio and photos are left out.
Limits
- The folder must be the vault's own folder. Snag writes only inside it.
- With the phone locked, a vault in iCloud whose daily note is not downloaded yet, or a file in use: the capture waits and retries. Snag asks iCloud to download the file first.
- A file that exists but cannot be read is never replaced.
- A renamed or moved vault folder is followed where iOS can still resolve it; otherwise pick the folder again from the connection page.
Next: Nextcloud