CLI tool for querying Granola meeting recordings and exporting to Obsidian
Project description
granola-tool
CLI tool for querying Granola meeting recordings, viewing AI-generated notes and transcripts, and exporting to Obsidian and a local knowledge base.
Inspired by glebis/claude-skills/granola.
Prerequisites
- macOS with Granola desktop app (Business or Enterprise plan)
- Python >= 3.13
- uv package manager
- API key: Granola app → Settings → Connectors → API keys
Installation
cd granola-tool
uv sync
export GRANOLA_KEY="grn_your_api_key_here"
uv run granola-tool test api # verify setup
Commands
granola-tool # show recent meetings (default)
granola-tool meeting list # list meetings with short IDs
granola-tool meeting notes <id> # view AI-generated notes
granola-tool meeting transcript <id> # view transcript
granola-tool lekhak list [folder] # browse knowledge base
granola-tool lekhak record <id> <folder> # export meeting
granola-tool lekhak sync # find unrecorded meetings
granola-tool lekhak show <slug> # view exported content
granola-tool lekhak edit <slug> # open in $EDITOR
granola-tool obsidian export <id> # export to Obsidian vault
granola-tool obsidian sync # batch export new meetings
granola-tool test token # check API key
granola-tool test api # test connectivity
granola-tool test config # show configuration
See SKILL.md for full command reference with all options.
Meeting IDs
Meetings can be referenced by:
- Short ID from list output (e.g.,
HNWQ) - Full note ID (e.g.,
not_HNWQaVwnQVhGMk) - UUID from desktop app (e.g.,
44759533-...) - Title substring (e.g.,
"team sync")
Configuration
Environment variables (GRANOLA_* prefix):
| Variable | Default | Description |
|---|---|---|
GRANOLA_KEY |
(required) | API key |
GRANOLA_API_BASE |
https://public-api.granola.ai |
API endpoint |
GRANOLA_VAULT_PATH |
~/Documents/ObsidianVault |
Obsidian vault path |
GRANOLA_LEKHAK_PATH |
~/knowledge-base/meetings |
Local knowledge base path |
For AI Agents (Claude Code)
This tool is designed to work with both human users and AI agents. To configure it as a Claude Code skill:
- Copy
SKILL.mdto your Claude Code skills directory (.claude/skills/) - The skill provides structured access to all CLI commands
- Agents can invoke meeting, obsidian, and lekhak commands programmatically
The skill document includes the full command reference, configuration details, and typical workflows that agents can follow to query meetings, export notes, and manage a local knowledge base.
Development
uv run ruff check src/
uv run mypy src/
uv run pytest
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file granola_tool-0.3.1.tar.gz.
File metadata
- Download URL: granola_tool-0.3.1.tar.gz
- Upload date:
- Size: 59.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c70914cb40eb30e35c6dae6014c87e1efc53d8f91a47a9f13bd1ef1cba5db19
|
|
| MD5 |
e8e9d7225d22e8209fb73fb1c7cf36c0
|
|
| BLAKE2b-256 |
04820dcab7cbe7be9b71e7bfb74ef5856f135376eb6021a76f60448326b3244c
|
File details
Details for the file granola_tool-0.3.1-py3-none-any.whl.
File metadata
- Download URL: granola_tool-0.3.1-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b67880b8e06f69bf9061a6b8d8ed86c3bca4e68a3d5f766293cbd4d6dcb3bc75
|
|
| MD5 |
f36070061022fd40f2e1568904e6973e
|
|
| BLAKE2b-256 |
ccecc80f267745011196fa61961b413d4510d3584c663898541e12a6c160255e
|