[!IMPORTANT] Upgrading from 2.0.x? The plugin now connects differently. Granola broke the old credential-based login in app version 7.427.0, so as of 2.1.0 this plugin uses Granola's official API instead. You'll need to create an API key in the Granola desktop app (Settings → Connectors → API keys — note that API keys require a paid Granola plan) and paste it into the plugin settings. Everything else — your synced notes and settings — carries over untouched.
This plugin pulls your Granola meeting notes and transcripts into your Obsidian vault as plain Markdown - so they're searchable, linkable, and yours to keep, instead of locked away in Granola, separate from everything else you know.
The most actively maintained Granola sync plugin, and the one that gets the details right: it syncs reliably, never leaves you with duplicate notes, and keeps everything neatly organised the way you set it up. It's built on a clean, well-tested codebase, so syncs just work and stay working.
This repo is maintained by @kayacancode.
As of version 2.1.0 the plugin authenticates with a personal API key against Granola's official public API (public-api.granola.ai), replacing the old approach of decrypting the desktop app's local credential store (which Granola 7.427.0 broke). That means:
summary_markdown rather than a conversion of the raw note content, so your own typed notes no longer sync, and only meetings with a finished AI summary and transcript come through.429grn_…) into Granola API key.web_url carries the old internal ID, so the first sync re-keys existing files (matched by their granola_id frontmatter, with a target-path fallback) to the new IDs.summary_markdown). Your own raw typed notes are not exposed by the public API and no longer sync.web_url link back to the note in the Granola web app.All synced files include structured frontmatter for tracking and deduplication:
Notes:
---
granola_id: not_1d3tmYTlCICgjy
title: "Meeting Title"
type: note
created: 2024-01-15T10:00:00Z
updated: 2024-01-15T12:00:00Z
attendees:
- John Doe
- Jane Smith
web_url: https://notes.granola.ai/d/f3e45e0f-24cc-480b-9a6c-8b1f5e3d7a2c
transcript: "[[Transcripts/Meeting Title-transcript.md]]"
---
Transcripts:
---
granola_id: not_1d3tmYTlCICgjy
title: "Meeting Title - Transcript"
type: transcript
created: 2024-01-15T10:00:00Z
updated: 2024-01-15T12:00:00Z
attendees:
- John Doe
- Jane Smith
note: "[[Granola/Meeting Title.md]]"
---
The granola_id is consistent across both note and transcript files for the same meeting, while the type field distinguishes them.
pnpm install
pnpm build
pnpm test # run all tests
pnpm test:watch # watch mode
pnpm test:coverage # with coverage
See CONTRIBUTING.md for more.
node scripts/release.js # auto-bump patch version
node scripts/release.js 2.1.1 # specific version
Please see CONTRIBUTING.md for info on contributing to this project.
MIT
This plugin is an independent project and is not affiliated with, endorsed by, or sponsored by Granola. It uses Granola's official public API with an API key you create in your own account. Do not use this plugin in any way that breaks Granola's Terms of Service — you are responsible for ensuring your use complies with them.