AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Granola

skill-artemxtech-personal-os-skills-granola · by ArtemXTech

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.

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-artemxtech-personal-os-skills-granola

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-artemxtech-personal-os-skills-granola)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Granola? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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

# List all meetings
python3 .claude/skills/granola/scripts/granola.py list

# Get specific meeting with transcript
python3 .claude/skills/granola/scripts/granola.py get 

# 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 

Commands

list

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 min
  • [✓] = already synced to vault
  • [ ] = not synced yet

get

View full meeting details and transcript.

python3 .claude/skills/granola/scripts/granola.py get 
python3 .claude/skills/granola/scripts/granola.py get  --no-transcript

sync

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 

# 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:

---
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:

{
  "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 API

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.