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

By 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 (the best known is Granola Sync, with several forks and successors) authenticate against Granola’s unofficial API and pull your notes into a vault folder on a schedule. Setup is genuinely quick: install the plugin, extract your login token, choose a folder, sync.

Where it breaks. The API these plugins call is unofficial and undocumented. The token step means handing your Granola session credential to a third-party plugin. And every sync is one-directional and lossy — you get a Markdown rendering of a ProseMirror document, not the document itself. When Granola changes its API or its cache format, the plugin breaks until a volunteer maintainer catches up.

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. Unofficial API, undocumented cache — the bridge is permanently load-bearing and permanently unsupported.
  • 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. The full data path 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.
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@getfazit.com