elliotjlt/claude-skill-potions/granola-sync
Claude Code and agent skill by elliotjlt/claude-skill-potions
- community
Checking that the SKILL.md file is still in the repository.
Syncs Granola meeting notes to Obsidian vault. Reads from Granola's local cache to extract meeting metadata and notes, then creates properly formatted markdown files with frontmatter. Also handles manual transcript formatting when cache doesn't have content.
Install
npx vskill@latest install elliotjlt/claude-skill-potions/granola-syncSKILL.md
Granola Sync
<purpose> Granola captures meeting transcripts and notes, but they live in the app. This skill bridges Granola → Obsidian, creating searchable, linked meeting notes that persist in your knowledge base. Works with both auto-sync from local cache and manual paste when transcripts aren't cached locally. </purpose>
When To Activate
<triggers> Auto-sync from cache:
- User says "sync granola" or "granola-sync"
- User asks to import meeting notes
- Beginning of session when reviewing recent meetings
Manual formatting:
- User pastes a meeting transcript
- User shares Granola export content
- User says "format this meeting" with pasted content
</triggers>
Important Limitation
<limitation> Granola stores most content server-side only. The local cache contains:
- Meeting metadata (title, date, attendees) for all meetings
notes_markdownfor only some meetings (user-edited notes)- Transcripts are NOT stored locally
When local cache has no notes, ask user to copy from Granola app. </limitation>
Instructions
Granola Cache Location
Cache Structure
Each document contains:
id- unique meeting IDtitle- meeting titlenotes_markdown- notes content (often empty)notes_plain- plain text versiongoogle_calendar_event.start.dateTime- meeting timegoogle_calendar_event.attendees- list withemailfields
Reading the Cache
<read_cache>
</read_cache>
Output File Format
<file_format> Filename: YYYY-MM-DD-kebab-case-title.md Location: Project meetings folder (e.g., Projects/project-name/meetings/)
</file_format>
Manual Transcript Formatting
<manual_format> When user pastes a transcript without cache data:
- Ask for metadata if not obvious:
- Meeting date
- Attendees
- Topic/title
- Structure the content:
</manual_format>
Output Format
When syncing from cache:
When no notes in cache:
NEVER
- Sync meetings without notes content
- Overwrite existing meeting files without asking
- Include sensitive attendee details beyond names
- Create duplicate files for same meeting
ALWAYS
- Use kebab-case lowercase filenames
- Add frontmatter with proper metadata
- Check for existing files before creating
- Ask which project folder to use if unclear
- Include granola-id to prevent duplicates
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/granola-sync/SKILL.md
Popularity
- Repository stars
- 55
- Repository forks
- 2
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 9 Apr 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/elliotjlt/claude-skill-potions/granola-sync)