Exporting
Keep Granola notes and transcripts in durable local files you control, with bundled exports, saved knowledge bases, and stable incremental state.
gran export is the default archive workflow.
Instead of treating notes and transcripts as two unrelated commands, the toolkit now exports them together by default and keeps persistent job history so the CLI, web app, and future integrations all point at the same export runtime.
Bundled Export
By default, gran export writes:
- notes to
<output>/notes - transcripts to
<output>/transcripts
Examples:
gran export
gran export --folder Team
gran export --output ./exports
gran export --notes-only
gran export --transcripts-onlyYou can still use gran notes or gran transcripts when you explicitly want a narrower
one-off export, but the bundled command should be the normal path.
Saved Knowledge Bases
Saved knowledge bases let you save a reusable destination profile instead of retyping output paths. Gran owns the local ones directly: folders and Obsidian vaults.
Current built-in knowledge-base kinds:
folderobsidian-vault
API-backed destinations such as Notion, Capacities, or Tana are outside Gran's main job. Gran keeps the local publishing path opinionated and reliable instead of pretending it owns every remote API.
Examples:
gran kb list
gran kb add --name "Work archive" --output ./exports
gran kb add --name "Work vault" --kind obsidian-vault --output ~/Vaults/Work --daily-notes-dir Daily
gran export --kb work-vault
gran kb remove "Work archive"For Obsidian vault knowledge bases, the toolkit defaults to:
- notes in
Meetings - transcripts in
Meeting Transcripts - markdown transcripts with note backlinks
- optional daily notes when
--daily-notes-diris configured
Notes And Transcript Formats
Notes support:
markdownjsonyamlraw
Transcripts support:
textmarkdownjsonyamlraw
Examples:
gran export --notes-format json
gran export --transcripts-format yaml
gran export --transcripts-format markdown
gran export --kb work-vault --notes-format markdownFolder-Scoped Exports
When you pass --folder <id|name>, the export is filtered to that folder and, by default, written
into a stable per-folder subdirectory under the output root.
Examples:
gran export --folder Team
gran export --folder Team --kb work-vaultExport Jobs
Exports are tracked as jobs with persistent history, scope metadata, status, progress counters, and rerun support, so the browser and automation flows can treat exports as part of the shared local runtime instead of a fire-and-forget shell command.
gran exports list
gran exports rerun notes-1234abcdIncremental Writes
The exporter keeps a hidden state file in the output directory to track:
- document id to filename
- content hash
- source timestamp
- last export time
That state is used to keep filenames stable, skip unchanged renders, migrate format changes, and delete stale files.