granola
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
Best use case
granola is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
Teams using granola should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/granola/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How granola Compares
| Feature / Agent | granola | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Granola Skill
Query and sync Granola AI meeting notes to Obsidian vault.
## How It Works
Granola stores everything locally at `~/Library/Application Support/Granola/cache-v3.json`:
- Documents (meetings with title, notes, people)
- Transcripts (real-time, with timestamps and source)
- Updates in real-time as you record
No API calls needed - reads directly from local cache.
## Quick Start
```bash
# List all meetings
python3 .claude/skills/granola/scripts/granola.py list
# Get specific meeting with transcript
python3 .claude/skills/granola/scripts/granola.py get <id>
# Sync new meetings to vault
python3 .claude/skills/granola/scripts/granola.py sync
# Sync specific meeting
python3 .claude/skills/granola/scripts/granola.py sync --id <id>
```
## Commands
### list
List all Granola meetings with sync status.
```bash
python3 .claude/skills/granola/scripts/granola.py list
python3 .claude/skills/granola/scripts/granola.py list --limit 5
```
Output:
```
[✓] 2026-01-09 Team Sync - Weekly
ID: abc123...
Transcript: 450 segments, ~86 min
[ ] 2026-01-10 Team Standup
ID: def456...
Transcript: 120 segments, ~15 min
```
- `[✓]` = already synced to vault
- `[ ]` = not synced yet
### get
View full meeting details and transcript.
```bash
python3 .claude/skills/granola/scripts/granola.py get <id>
python3 .claude/skills/granola/scripts/granola.py get <id> --no-transcript
```
### sync
Sync meetings to `Meetings/` as structured Markdown.
```bash
# Sync new meetings only
python3 .claude/skills/granola/scripts/granola.py sync
# Sync specific meeting
python3 .claude/skills/granola/scripts/granola.py sync --id <id>
# Re-sync all (overwrites existing)
python3 .claude/skills/granola/scripts/granola.py sync --all
```
## Output Format
Synced meetings are saved to `Meetings/` with this structure:
```markdown
---
type: granola-meeting
date: 2026-01-09
time: "19:30"
duration_min: 86
granola_id: abc123...
people:
- "[[Sarah Chen]]"
topics: []
status: raw
---
# Meeting Title
## Notes
(Your notes from Granola)
## Transcript
[19:30:45] 🎤 Hey, how's it going?
[19:30:48] 🎤 Great to meet you...
```
**Transcript icons:**
- 🎤 = microphone (you)
- 🔊 = system audio (others on call)
## Workflow
1. **Record meeting** in Granola (real-time transcription)
2. **Sync to vault**: `python3 .claude/skills/granola/scripts/granola.py sync`
3. **Process meeting**: Extract action items, update people notes
4. **Mark as processed**: Change `status: raw` to `status: processed`
## Querying with Bases
Use `Granola.base` to query synced meetings:
| View | Filter |
|------|--------|
| Recent | Last 7 days |
| Needs Processing | status = raw |
| By Person | Grouped by people field |
## Data Structure
**Local cache:** `~/Library/Application Support/Granola/cache-v3.json`
```
cache (JSON string) → state →
├── documents: {id: {title, notes_plain, notes_markdown, people, created_at}}
└── transcripts: {id: [{text, source, start_timestamp, end_timestamp}]}
```
**Transcript segment:**
```json
{
"text": "Hey, how's it going?",
"source": "microphone",
"start_timestamp": "2026-01-09T19:30:45.123Z",
"end_timestamp": "2026-01-09T19:30:48.456Z"
}
```
## Tips
- **Real-time access**: Cache updates as you record - can query mid-meeting
- **Free tier hack**: Sync hourly to bypass 7-day history limit
- **No auth needed**: Uses local files, not APIRelated Skills
review
Daily and weekly review workflows. USE WHEN user says "morning routine", "evening routine", "weekly review", "start my day", "end of day".
tasknotes
Create, update, delete, and list tasks via HTTP API. USE WHEN user wants to create tasks, mark done, update status, or manage tasks.
query
Query data from this vault. USE WHEN user asks about projects, clients, tasks, daily notes. Use grep to extract frontmatter - do NOT read full files.
client
Manage client relationships. USE WHEN user asks about clients, follow-ups, client emails, or who needs attention.
granola-webhooks-events
Build event-driven automations with Granola's Zapier webhook triggers. Use when creating real-time notification systems, processing meeting events, or building custom integrations that react to Granola note creation. Trigger: "granola webhooks", "granola events", "granola triggers", "granola real-time", "granola event-driven".
granola-upgrade-migration
Upgrade Granola app versions and migrate between subscription plans. Use when upgrading the desktop app, changing from free to paid plans, downgrading with data preservation, or resolving update issues. Trigger: "upgrade granola", "granola update", "change granola plan", "granola new version", "granola downgrade".
granola-security-basics
Security and privacy configuration for Granola meeting data. Use when reviewing data handling practices, configuring encryption, ensuring SOC 2/GDPR compliance, or securing meeting recordings. Trigger: "granola security", "granola privacy", "granola encryption", "granola SOC 2", "granola GDPR", "secure granola".
granola-sdk-patterns
Zapier automation patterns and Enterprise API integration for Granola. Use when building automated workflows, connecting Granola to 8,000+ apps via Zapier, or querying the Enterprise API for notes and transcripts. Trigger: "granola zapier", "granola automation", "granola API", "granola SDK".
granola-reference-architecture
Enterprise reference architecture for meeting management with Granola. Use when designing org-wide meeting workflows, planning integration topology, or architecting meeting-to-action pipelines across departments. Trigger: "granola architecture", "granola enterprise design", "granola system design", "meeting system architecture".
granola-rate-limits
Understand Granola plan limits, usage quotas, and API rate limiting. Use when hitting meeting limits, choosing between plans, or managing Enterprise API rate limits. Trigger: "granola limits", "granola quota", "granola plan", "granola usage", "granola restrictions".
granola-prod-checklist
Production readiness checklist for Granola team and enterprise deployment. Use when rolling out Granola to a team, planning enterprise deployment, or verifying all configuration is production-ready. Trigger: "granola production", "granola rollout", "granola deployment", "granola checklist", "granola go-live".
granola-performance-tuning
Optimize Granola transcription accuracy, note quality, and processing speed. Use when improving transcription quality, reducing processing time, optimizing templates for better AI output, or tuning audio setup. Trigger: "granola performance", "granola accuracy", "granola quality", "improve granola", "granola transcription better".