chief-of-ai
Coordinate authorized work across persistent AI agents and existing tasks. Use when the user…
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.
$ npx -y skills add ArtemXTech/personal-os-skills --skill granola --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/granolaContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: granola description: 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.
Query and sync Granola AI meeting notes to Obsidian vault.
Granola stores everything locally at `~/Library/Application Support/Granola/cache-v3.json`:
No API calls needed - reads directly from local cache.
# 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>
List all Granola meetings with sync status.
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 minView full meeting details and transcript.
python3 .claude/skills/granola/scripts/granola.py get <id> python3 .claude/skills/granola/scripts/granola.py get <id> --no-transcript
Sync meetings to `Meetings/` as structured Markdown.
# 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
Synced meetings are saved to `Meetings/` with this structure:
--- 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:**
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`
Use `Granola.base` to query synced meetings:
| View | Filter | |------|--------| | Recent | Last 7 days | | Needs Processing | status = raw | | By Person | Grouped by people field |
**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:**
{
"text": "Hey, how's it going?",
"source": "microphone",
"start_timestamp": "2026-01-09T19:30:45.123Z",
"end_timestamp": "2026-01-09T19:30:48.456Z"
}Claude Code skills for Obsidian workflows. 📚 Take control over your life. Point B, 14-day sprint on personal AI agents, starts Nov 3: lab.artemzhutov.com
Coordinate authorized work across persistent AI agents and existing tasks. Use when the user…
Import NotebookLM notebooks into your Obsidian vault as linked knowledge graphs. Sources…
Turn expert podcasts into personalized protocols with cited experiments. Load 300 episodes…
Load context from vault memory. Temporal queries (yesterday, last week, session history) use…
Sync Claude Code sessions to Obsidian markdown. Export, resume, add notes, close sessions.…
Manage tasks in Obsidian via TaskNotes plugin API. Use when user wants to create tasks, list…