Gran 👵🏻

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-only

You 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:

  • folder
  • obsidian-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-dir is configured

Notes And Transcript Formats

Notes support:

  • markdown
  • json
  • yaml
  • raw

Transcripts support:

  • text
  • markdown
  • json
  • yaml
  • raw

Examples:

gran export --notes-format json
gran export --transcripts-format yaml
gran export --transcripts-format markdown
gran export --kb work-vault --notes-format markdown

Folder-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-vault

Export 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-1234abcd

Incremental 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.

On this page