client
Manage client relationships. USE WHEN user asks about clients, follow-ups, client emails, or who needs attention.
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/claude-code-obsidian-starter --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"
}Free starter kit: Claude Code + Obsidian. Pre-configured vault with skills for projects, tasks, clients, and daily routines. Just open and go.
Manage client relationships. USE WHEN user asks about clients, follow-ups, client emails, or who needs attention.
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.
Daily and weekly review workflows. USE WHEN user says "morning routine", "evening routine", "weekly review", "start my day", "end of day".
Create, update, delete, and list tasks via HTTP API. USE WHEN user wants to create tasks, mark done, update status, or manage tasks.