Overview
Local-first workspace for Granola: sync locally, browse anywhere, publish into folders or Obsidian, and connect external tools when needed.
Gran 👵🏻 is the local workspace for your Granola archive.
Think of it as the piece Granola itself does not give you:
- a local archive you can browse and search
- a browser and terminal workspace on top of that archive
- durable exports into folders and Obsidian vaults you own
- clean local seams when you want another tool to build on top
Gran is best when it stays simple:
- sync meetings, notes, transcripts, folders, and change history into a local runtime
- browse that state from the CLI, browser workspace, and terminal UI
- export notes and transcripts without getting trapped in a closed format
- publish into local folders and Obsidian without depending on a remote integration layer
- connect the archive to scripts, webhooks, or SDK code only when you need more
The fastest way to start is gran init. In an interactive terminal, it guides you through
connection, first import, and opening the browser workspace by default.
It has three user-facing surfaces on one shared TypeScript core:
- batch CLI commands
- a browser workspace from
gran web - a terminal workspace from
gran tui
What It Is Good At
- keeping a local index, local snapshot, and sync loop around your Granola archive
- opening the same meetings from scripts, the browser, and the terminal
- exporting notes and transcripts into durable local files
- publishing into local folders and Obsidian vaults
- giving you an open-source seam when Granola itself is missing a feature you need
- feeding external tools through events, hooks, machine-readable fetch commands, and the SDK
Start Here
Getting started
Workflows and examples
Export and own your data
Integrations
Search, meetings, and folders
Shared local runtime
Auth and configuration
SDK and integrations
Advanced automation
Agent skills
Architecture
Development
Releases
If you want practical setups first, open Workflows. If you want to wire Gran
into other local tools, open Integrations. If you want the optional
advanced review-first layer later, open Automation.
Core Ideas
Local-first sync and ownership
Gran 👵🏻 is built around the idea that your meeting archive should be usable from a local runtime you control, with an explicit sync loop, a local index, local snapshots, search, exports, and background work.
Open integrations when needed
Gran exposes local seams on purpose. Events, hooks, machine-readable fetch commands, and the SDK let you connect the meeting archive to whatever else you want to run on top.
One shared core across surfaces
CLI commands, the browser workspace, and the TUI all talk to the same application core for auth, meeting discovery, folders, transcripts, notes, and export jobs.
Open and hackable by design
Registries, local config files, prompt files, and documented service seams are there so you can extend the toolkit instead of waiting for an official integration to exist.