Get the FREE Ultimate OpenClaw Setup Guide →
s

Granola Meeting Transcripts

@scald

npx machina-cli add skill @scald/granola --openclaw
Files (1)
SKILL.md
2.3 KB

granola

Access Granola meeting transcripts, summaries, and notes.

Setup

Granola stores meetings in the cloud. To access them locally:

  1. Install dependencies:
pip install requests
  1. Run initial sync:
python ~/path/to/clawdbot/skills/granola/scripts/sync.py ~/granola-meetings
  1. Set up automatic sync via clawdbot cron:
clawdbot_cron({
  action: "add",
  job: {
    name: "Granola Sync",
    description: "Sync Granola meetings to local disk",
    schedule: { kind: "cron", expr: "0 */6 * * *", tz: "America/New_York" },
    sessionTarget: "isolated",
    wakeMode: "now",
    payload: {
      kind: "agentTurn",
      message: "Run the Granola sync: python {skillsDir}/granola/scripts/sync.py ~/granola-meetings",
      deliver: false
    }
  }
})

The sync script reads auth from ~/Library/Application Support/Granola/supabase.json (created when you sign into Granola on macOS).

Data Structure

After sync, each meeting is a folder:

~/granola-meetings/
  {meeting-id}/
    metadata.json   - title, date, attendees
    transcript.md   - formatted transcript  
    transcript.json - raw transcript data
    document.json   - full API response
    notes.md        - AI summary (if available)

Quick Commands

List recent meetings:

for d in $(ls -t ~/granola-meetings | head -10); do
  jq -r '"\(.created_at[0:10]) | \(.title)"' ~/granola-meetings/$d/metadata.json 2>/dev/null
done

Search by title:

grep -l "client name" ~/granola-meetings/*/metadata.json | while read f; do
  jq -r '.title' "$f"
done

Search transcript content:

grep -ri "keyword" ~/granola-meetings/*/transcript.md

Meetings on a specific date:

for d in ~/granola-meetings/*/metadata.json; do
  if jq -e '.created_at | startswith("2026-01-03")' "$d" > /dev/null 2>&1; then
    jq -r '.title' "$d"
  fi
done

Notes

  • Sync requires the Granola desktop app to be signed in (for auth tokens)
  • Tokens expire after ~6 hours; open Granola to refresh them
  • macOS only (auth file path is macOS-specific)
  • For multi-machine setups, sync on one machine and rsync the folder to others

Source

git clone https://clawhub.ai/scald/granolaView on GitHub

Overview

Granola stores meetings in the cloud and lets you pull transcripts, AI-generated summaries, and notes locally by syncing. This skill enables offline review, keyword searching, and quick access to meeting metadata. Each meeting becomes a folder with structured files for easy reference.

How This Skill Works

Install Python 3 and the requests package, then run the provided sync script to pull Granola meetings to ~/granola-meetings. Optionally set up a clawdbot cron job to auto-sync. Each meeting folder contains metadata.json, transcript.md, transcript.json, document.json, and notes.md, with tokens refreshed by signing into the Granola desktop app on macOS (auth file at ~/Library/Application Support/Granola/supabase.json).

When to Use It

  • You need offline access to recent Granola transcripts and notes while traveling or offline.
  • You want to search across transcripts or notes for keywords (e.g., client names, topics).
  • You need to review meetings by date or title using the local metadata.json.
  • You manage multiple machines and want a single Granola dataset synced to others via rsync.
  • You want quick reference to AI-generated summaries (notes.md) alongside transcripts.

Quick Start

  1. Step 1: pip install requests
  2. Step 2: Run initial sync: python ~/path/to/clawdbot/skills/granola/scripts/sync.py ~/granola-meetings
  3. Step 3: Optional: set up automatic sync with clawdbot_cron using the provided payload

Best Practices

  • Run the initial sync after installing dependencies to populate ~/granola-meetings.
  • Keep tokens fresh: open Granola to refresh credentials when tokens near expiry (~6 hours).
  • Ensure you sign in on macOS so the auth file at ~/Library/Application Support/Granola/supabase.json is created.
  • Limit multiple concurrent syncs on the same dataset to avoid conflicts; use a single source machine for sync when possible.
  • Verify the local folder structure (metadata.json, transcript.md, transcript.json, document.json, notes.md) to ensure data integrity.

Example Use Cases

  • PM reviews the last 10 meetings offline to prepare for a stakeholder update.
  • Engineer searches transcripts for a keyword across all client calls to surface action items.
  • Team uses rsync to propagate the Granola folder to a second laptop for field work.
  • Data scientist analyzes raw transcripts (transcript.json) to extract topics and sentiment.
  • Assistant filters meetings by date to compile a chronological meeting log.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers