DEV Community

Xin Jiang
Xin Jiang

Posted on

The One Question to Ask Any Tool Before It Touches Your Vault

The One Question to Ask Any Tool Before It Touches Your Vault

A plugin wants write access to your vault, and the landing page says "seamless sync". If you've ever opened a note and found a paragraph you wrote quietly replaced by an older version, you probably keep a rule now: tools can read your vault, but nothing writes into it.

That rule is safe, but it means pasting everything in by hand. There's a cheaper way to decide which tools deserve an exception: one question, plus a three-minute test that checks the answer. I'll use SpeakPen Sync, a voice-notes plugin, as the worked example because it passes. The method doesn't depend on it, though. Run it on anything.

The question

Don't ask "Can I trust this tool?" That's too big to answer. Ask something smaller:

"When the tool's copy of a note and my copy disagree, what happens?"

Every tool that writes files has an answer, documented or not. You'll get one of four.

1. "The server wins." The remote copy is treated as the real one and the file in your vault as a cache, so every sync rewrites the file. That's fine for a cache, but your vault isn't one. Anything you added to a synced note is gone after the next sync.

2. "Last write wins." This sounds fairer but is worse: the outcome depends on device clocks and which machine woke up last. A laptop asleep since Tuesday can push Tuesday's version over tonight's.

3. "We merge intelligently." A merge is a guess about which fragments belong together. When the guess is right, you don't notice. When it's wrong, a sentence of yours disappears and the paragraph still reads fine, so you don't notice that either. A .conflict file is a record of a guess that already happened, which you now diff by hand.

4. "Your edit wins, by construction." The tool remembers exactly what it wrote to each file. Before it rewrites a file, it compares what's on disk with what it wrote. If they match, the file is still the tool's output and it's safe to update. If they differ, you've written in the note, so the tool leaves it alone and tells you it did. There's no merge dialog and no "keep both?" prompt. Tools ask those questions when they can't tell whose words are whose.

Only the fourth answer is acceptable, and the reason isn't taste. The two copies aren't symmetric. What you typed into the note exists nowhere else. The tool's copy can be fetched again at any time. Any rule that destroys the copy you can't replace in order to keep the copy you can replace has it backwards. SpeakPen Sync's source puts it in one comment, next to the line that skips an edited note: "Their words are not reproducible from anywhere; the SpeakPen copy is. Never trade one for the other."

The three-minute test

Claims are cheap; you want behaviour you can watch. The test is the same for every tool, and it has one step people usually leave out:

  1. Point the tool at an empty test folder, not your real vault, and let it write two notes, A and B.
  2. Open note A and type a line that's obviously yours: "I wrote this." Leave B alone.
  3. Change both notes on the tool's side (rename them, edit a summary) so the tool has a newer version.
  4. Sync again, then open both notes.

Step 3 is the one that matters. If nothing changed on the tool's side, almost every tool passes, which proves nothing. You only learn the rule when the tool has a newer version and has to decide what to do with yours. Note B is the control: it shows the tool really did sync, so a missing update on A isn't just a sync that never ran.

Here's how to read the result:

  • Your line is gone: answer 1 or 2.
  • Your line is half there, spliced into the new version, or a .conflict file appeared: answer 3.
  • A still has your line and wasn't updated, B picked up the new version, and the tool told you it skipped A: answer 4.

Two follow-up questions

A tool that passes the test gets into your vault. These two questions decide whether it stays.

Does it tell you when it leaves something alone? If a tool skips your edited notes silently, you can't tell a deliberate skip from a broken sync. You want an explicit report saying which note was skipped and where it is.

What else does it touch? A tool can respect your edits and still scan the whole vault, upload files, or phone home. You want a narrow scope: it writes only to the folder you chose and talks only to the server it needs.

And get the price in writing: every design has one, and a tool that won't name it is hiding it.

The worked example: SpeakPen Sync

SpeakPen turns a voice recording into a note with a title, a summary, a category, and the full transcript. You record from an iPhone (Control Center, Lock Screen, Action Button, or Siri: "Record with SpeakPen"), from an Android Quick Settings tile, or on the web. The SpeakPen Sync community plugin writes those notes into a folder you choose. Here's how it answers the questions above:

  • Who wins: your edit. The plugin stores a hash of each file it writes, not a copy of the content. When SpeakPen has a newer version of a note, the plugin re-reads the file on disk first and compares hashes. If nothing changed in SpeakPen, it doesn't open the file at all. If the file no longer matches what the plugin wrote, it skips the note. The size of your edit doesn't matter: a comma counts.
  • Does it tell you: yes. You get a notice like "1 note changed in SpeakPen but edited here, so left as-is." The title and path of each skipped note go to Obsidian's developer console.
  • What else it touches: only its own folder. Sync is one-way into the vault. The plugin makes read-only GET requests to speakpen.app and nowhere else. It never uploads your vault and never writes anything back to SpeakPen. Each sync asks only for notes that changed since the last one. A quiet sync is a single request; a big first sync is fetched in pages of 50.
  • Untouched notes stay current. If you edit a note's title or summary in SpeakPen and haven't touched the vault copy, the file is updated in place and keeps its original filename, so links to it still work. If you change the sync folder setting, the notes it's tracking move to the new folder.
  • The price: once you've edited a synced note, it stops receiving updates from SpeakPen. If you fix the title in SpeakPen later, the vault copy won't change. For voice notes that's usually right: you edited it to turn a transcript into a thought, and you don't want it reverting.
  • What it deliberately doesn't do: it doesn't link the audio. The API returns presigned URLs that expire within hours, so a link would be dead by tomorrow. Each note's frontmatter has a stable speakpen_id you can use to find the recording again. It also doesn't track notes you move yourself. If a tracked file isn't where the plugin left it, the plugin doesn't guess where it went. It writes a fresh copy the next time that note changes in SpeakPen.

If you also want ChatGPT, Claude, or a coding agent to read the same notes, SpeakPen has a read-only MCP server (speakpen.app/mcp, every plan): recent notes, search, and read a note; no audio, no writes; disconnect under Settings → Connections. Setup steps are at speakpen.app/connect.

Run it this week

  1. Ask the question. What happens when its copy and yours disagree? If the answer is "server wins", "last write wins", or "we merge", close the tab.
  2. If the answer is "your edit wins", test it. Write two notes, edit one, change both on the tool's side, sync. Your edited note should survive untouched, the other should update, and the tool should say it skipped the one you edited.
  3. Check the scope. Does it touch only the folder you chose? Does it send anything anywhere else?
  4. Get the price in writing. What stops updating once you've edited a note?

To run it on SpeakPen: install SpeakPen Sync from Obsidian's community plugin browser. In the SpeakPen web app, go to Settings → Connections, find the Obsidian card, and click Generate token. The token is shown only once, so paste it into the plugin settings right away. Set an empty test folder as the sync folder, record two short notes, and sync. In Obsidian, type a line into note A and leave note B alone. In the SpeakPen web app, change the title of both notes, then sync again. B is updated in place. A keeps your line, and a notice says "1 note changed in SpeakPen but edited here, so left as-is." Nothing outside the folder changes.

The free plan covers this: 3 notes a month, up to 5 minutes each. Pro is $9.90/month for 60 notes, up to 20 minutes each.

If another tool passes the same test, use it. The method isn't tied to any product. The idea behind it is simple: the copy that can't be reproduced wins.

→ How voice notes get into an Obsidian vault

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.