Your Granola notes want to live in Obsidian. Granola disagrees.

By Kyle Nelson, Founder, Fazit

Granola writes excellent meeting notes — into Granola. There is no official Obsidian export, no Markdown folder, no local files you can point your vault at. So the community built the bridge itself, three different ways. Here is how each one works, where each one breaks, and the question the whole exercise raises: if the destination you actually want is a Markdown file in your vault, why does the note have to take a round trip through someone else’s database to get there?

Why this page exists

Search GitHub for “granola obsidian” and you will find multiple independently-built sync plugins, cache scrapers, and scripts — separate people solving the same problem from scratch. That is not a niche request; it is a product gap with a user base. Obsidian people want notes as files they own: greppable, linkable, versionable, readable in thirty years by anything that opens text. Granola’s notes live as rows in a cloud database and a local ProseMirror cache, readable by Granola.

Method 1 — community sync plugins

Community plugins pull your notes into a vault folder on a schedule, and they come in two generations. The older, better-known ones (Granola Sync and its forks) authenticate against Granola’s unofficial API — install, extract your login token, choose a folder, sync. Newer plugins (e.g. Granola Meetings Simple Sync) use Granola’s official MCP API with a one-time OAuth login, which is a real improvement: no token extraction, a sanctioned endpoint, cleaner deduplication.

Where it breaks. The unofficial-API plugins hand your Granola session credential to a third-party plugin and break whenever Granola changes something a volunteer maintainer has to chase. The official-API route fixes the credential hygiene but not the structure: every sync is still one-directional and lossy — a Markdown rendering of a ProseMirror document, downstream of the cloud original — and the vault copy is only as fresh as the last sync. Official or not, it is still a bridge you have to keep standing.

Method 2 — scraping the local cache

Granola keeps a local cache of your notes as ProseMirror JSON inside its application-support folder. Several published scripts parse that file directly and emit Markdown — no API, no token, works offline.

Where it breaks. You are reverse-engineering an app’s internal cache. The format is undocumented, unversioned for outsiders, and one update away from silently changing shape. This is the most fragile bridge of the three, and the fact that people run it anyway tells you how much they want the files.

Method 3 — copy-paste

The manual fallback: open the note in Granola, copy, paste into Obsidian, fix the formatting, add your links and tags. Five minutes per meeting, forever. Most people who start here end up at Method 1 or 2, which is how those projects got written.

GRANOLA WORKFLOW    call → Granola cloud → web app → plugin/scraper → vault
FILE-NATIVE         call → note.md appears in your vault

The catch all three share

Every method above is a workaround for the same architectural decision: Granola stores your notes in its cloud first, and your vault is a downstream copy. That has two consequences no plugin can fix.

  • The sync can always break. Whether it rides the unofficial API, the undocumented cache, or the newer official MCP endpoint, the bridge is permanently load-bearing — and your vault is only as current as its last successful run.
  • The audio still went to the cloud. Syncing the note to Obsidian does not change how it was made: your call audio was streamed to third-party transcription services, and the transcript lives on Granola’s servers. The file in your vault is a copy of a record someone else holds. Granola’s own security FAQ confirms the shape of this: audio is cached for transcription and then deleted from its systems and third-party services, and transcripts are kept indefinitely by default. We walk through the full disclosure in what Granola’s public docs say about its subprocessors, and the field comparison is in our Granola alternatives comparison.

The architectural fix: skip the sync

Fazit approaches the same job from the opposite end. It captures the call on your Mac, transcribes it on-device, writes the note with a local model, and saves it as a Markdown file directly into your vault — YAML frontmatter, tags, wiki-linkable, one file per call. There is no cloud copy to sync from, no token to extract, no plugin to maintain. The vault is not the export destination; it is the only place the note has ever existed. And because transcription happens in memory on your machine, the audio was never sent anywhere — a property no sync method can retrofit. How that works is in Why “Never Records” Is Not Marketing.

Fair caveats in the other direction: Granola has mobile apps, Windows support, and team features; Fazit is a macOS app for 1:1 calls, and it is early. If you need meeting notes on an iPhone, keep the plugin. If your notes’ permanent home is an Obsidian vault on a Mac, the sync problem is optional.

The test for any meeting notetaker, if you are an Obsidian person: when the vendor disappears, what do you keep? With a sync plugin: whatever synced before the API broke. With files written natively: everything, because there was never anything else.

FAQ

How do I get Granola notes into Obsidian?

Three community routes exist: a sync plugin using Granola’s API, a script that parses Granola’s local ProseMirror cache, or manual copy and paste. The newer plugins use the official MCP API with OAuth, which is a real improvement on token extraction, but every route leaves your vault copy downstream of the cloud original.

Does Granola have an official Obsidian integration?

No. There is no official Obsidian export, no Markdown folder and no local files to point a vault at, which is why several people independently built bridges.

Is it safe to use a Granola sync plugin?

Plugins using the official MCP API with OAuth avoid handing over a session credential, which is the main hygiene concern with the older unofficial-API plugins. The structural issue is unchanged either way: the bridge is load-bearing and breaks when either end changes.

Can I get meeting notes into Obsidian without a sync bridge?

Yes, by using a notetaker that writes Markdown into the vault natively. Then the file in your vault is the original rather than a copy, and there is no sync step to maintain or to break.

More on the files-first argument in Obsidian Meeting Notes Should Be Files, Not Rows, and the full field in The Best Granola Alternatives in 2026. If your notes live in Obsidian, early access pricing is live. Security teams: source access for independent review is available on request — hello@re-entry.ai