
Granola
- 46 installs
- 76 repo stars
- Updated August 4, 2026
- vm0-ai/vm0-skills
Helps with ai & agent building tasks during AI-assisted development.
About
granola is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- granola
- AI & Agent Building
- AI-coding skill
Granola by the numbers
- 46 all-time installs (skills.sh)
- Ranked #7,629 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill granolaAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 46 |
|---|---|
| repo stars | ★ 76 |
| Last updated | August 4, 2026 |
| Repository | vm0-ai/vm0-skills ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Troubleshooting
If requests fail, run zero doctor check-connector --env-name GRANOLA_TOKEN or zero doctor check-connector --url https://public-api.granola.ai/v1/notes --method GET
How to Use
Base URL
- API:
https://public-api.granola.ai
1. List Notes
Retrieve all accessible meeting notes with pagination. Returns up to 30 notes per page.
curl -s -X GET "https://public-api.granola.ai/v1/notes?page_size=10" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .2. List Notes with Pagination
Use the cursor from a previous response to fetch the next page.
curl -s -X GET "https://public-api.granola.ai/v1/notes?page_size=10&cursor=CURSOR_VALUE" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .3. List Notes Filtered by Date
Filter notes created after or before a specific date, or updated after a specific date.
curl -s -X GET "https://public-api.granola.ai/v1/notes?created_after=2025-01-01&page_size=20" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .curl -s -X GET "https://public-api.granola.ai/v1/notes?created_before=2025-06-01&created_after=2025-01-01" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .curl -s -X GET "https://public-api.granola.ai/v1/notes?updated_after=2025-03-01" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .4. Get a Specific Note
Retrieve detailed information about a single note including summaries, attendees, and calendar event details. Note IDs follow the pattern not_ followed by 14 alphanumeric characters.
curl -s -X GET "https://public-api.granola.ai/v1/notes/not_XXXXXXXXXXXXXX" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .5. Get a Note with Transcript
Include the full meeting transcript by adding the include=transcript query parameter.
curl -s -X GET "https://public-api.granola.ai/v1/notes/not_XXXXXXXXXXXXXX?include=transcript" --header "Authorization: Bearer $GRANOLA_TOKEN" | jq .6. Iterate Through All Notes
Paginate through all available notes using cursors.
CURSOR=""
while true; do
if [ -z "$CURSOR" ]; then
RESPONSE=$(curl -s -X GET "https://public-api.granola.ai/v1/notes?page_size=30" --header "Authorization: Bearer $GRANOLA_TOKEN")
else
RESPONSE=$(curl -s -X GET "https://public-api.granola.ai/v1/notes?page_size=30&cursor=$CURSOR" --header "Authorization: Bearer $GRANOLA_TOKEN")
fi
echo "$RESPONSE" | jq '.data[] | {id, title}'
HAS_MORE=$(echo "$RESPONSE" | jq -r '.hasMore')
if [ "$HAS_MORE" != "true" ]; then break; fi
CURSOR=$(echo "$RESPONSE" | jq -r '.cursor')
doneResponse Structure
List Notes Response
| Field | Type | Description |
|---|---|---|
data | array | Array of note summary objects |
hasMore | boolean | Whether more pages are available |
cursor | string | Cursor for next page (present when hasMore is true) |
Note Summary Fields
| Field | Type | Description |
|---|---|---|
id | string | Note ID (format: not_ + 14 chars) |
title | string | Note title |
owner | object | Owner with name and email |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last update timestamp |
Full Note Fields (in addition to summary fields)
| Field | Type | Description |
|---|---|---|
calendar_event | object | Calendar event with title, invitees, organizer, scheduled times |
attendees | array | List of meeting attendees |
summaries | object | AI-generated summaries in text and markdown format |
transcript | array | Transcript entries with speaker, text, and timestamps (only when include=transcript) |
Guidelines
1. API Key Scope: API keys provide read-only access to publicly accessible notes within the workspace and notes shared in workspace-wide folders 2. Rate Limits: The API enforces a burst limit of 25 requests per 5 seconds and a sustained limit of 5 requests per second (300 per minute). Check for HTTP 429 responses and implement backoff 3. Pagination: Use cursor-based pagination with page_size (1-30, default 10) and cursor parameters. Always check hasMore to determine if more pages exist 4. Transcripts: Transcripts are not included by default. Use include=transcript query parameter when you need transcript data to reduce payload size 5. Note ID Format: Note IDs follow the pattern not_ followed by 14 alphanumeric characters (e.g., not_AbCdEfGhIjKlMn) 6. Enterprise Only: This API is only available on the Granola Enterprise plan