Granola Cli banner
joelhooks joelhooks

Granola Cli

Development community

Description

🥣 Agent-first CLI for Granola meeting notes via MCP

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

🥣 granola-cli

Agent-first CLI for [Granola](https://granola.ai) meeting notes. Search, list, and retrieve your meetings from the terminal. Built for AI agents — every command returns structured HATEOAS JSON.

Install

curl -fsSL https://raw.githubusercontent.com/joelhooks/granola-cli/main/install.sh | sh

Or build from source:

git clone https://github.com/joelhooks/granola-cli.git
cd granola-cli
bun install
bun run build
cp granola ~/.local/bin/

Prerequisites

  • mcporter — handles Granola's MCP OAuth flow
  • Bun (build only — compiled binary has no runtime deps)

Setup

# Install mcporter
npm install -g mcporter

# Authenticate with Granola (opens browser)
granola auth

**Remote machines**: If you're SSH'd in, tunnel the callback port first:

ssh -L 61200:127.0.0.1:61200 user@host -N

Then run `granola auth` and open the URL in your local browser.

Usage

# Self-documenting command tree
granola

# List meetings
granola meetings
granola meetings --range last_30_days
granola meetings --range custom --start 2026-01-01 --end 2026-02-01

# Get meeting details
granola meeting 
granola meeting  --transcript

# Natural language search across all notes
granola search "what were the action items from last week"
granola search "decisions about pricing"

Output Format

Every command returns a JSON envelope — no plain text, no tables:

{
  "ok": true,
  "command": "granola meetings",
  "result": {
    "range": "last_30_days",
    "meetings": [
      {
        "id": "abb60eae-...",
        "title": "Quarterly planning session",
        "date": "Feb 10, 2026 4:00 PM",
        "participants": ["Joel Hooks"]
      }
    ],
    "count": 5
  },
  "next_actions": [
    { "command": "granola meeting abb60eae-...", "description": "Get details" },
    { "command": "granola search \"action items\"", "description": "Search across all no