Book Reservations
via Text Message

An open-source note taking agent powered by Claude that connects to your Granola account and lets you search your meeting notes, get summaries, action items, and transcripts right from iMessage, built on Linq.

Granola agent iMessage conversation

How It Works

RSA-PSS + SHA-256AES-256-GCM CredentialsPer-Request SigningDynamoDB Storage
iMessageUser
LinqWebhook
Your ServerExpress
ClaudeSonnet 4
Granola
GranolaNote Taking MCP
01

Clone & Configure

Clone the repo, add your Linq API token, Anthropic key, and Granola OAuth credentials to .env. Start the Express server and expose it with ngrok.

02

Webhook Connects Everything

Set your ngrok URL as the webhook in Linq. When someone texts your number, Linq forwards the message to your server — including images and voice memos.

03

Claude Books for You

Claude Sonnet 4 receives the message with Granola tools available — from searching notes to pulling transcripts and action items. Results are sent back as iMessages.

Under the Hood

Natural Language Search

Ask questions like "what did we discuss about pricing?" and Claude searches across all your Granola meeting notes to find the answer — not just keyword matching.

Instant Summaries

Get concise summaries of any meeting — key decisions, discussion points, and outcomes. Text "summarize yesterday's standup" and get a response in seconds.

Action Item Extraction

Pull action items from any meeting with who's responsible and deadlines. Never miss a follow-up — just text "what's on my plate from this week's meetings?"

Multi-Message Responses

Claude's replies are split on --- delimiters and sent sequentially with typing indicators between each — mimicking how a human would actually text back.

Group Chat Intelligence

In group chats, a fast Haiku classifier decides whether to respond, react with a tapback, or stay silent — so the agent doesn't hijack every conversation.

Magic Link Onboarding

New users receive a secure magic link to connect their Granola account. Credentials are encrypted with AES-256-GCM and stored per-user in DynamoDB.

Up and running in minutes

Clone the repo, add your API keys, and start receiving iMessages on your local server.

Clone the Repo
$git clone https://github.com/linq-team/linq-granola-agent.git
$cd linq-granola-agent && npm install
$cp .env.example .env # add Linq + Anthropic + Granola keys
$npm run dev

Simple Architecture

iMessage → Your app → iMessage

01
User texts via iMessage"What did we discuss about pricing last week?"
02
Linq receives via webhookreal-time delivery to your endpoint
03
Your app processes with Claude AIfull conversation history + user context
04
Claude uses Granola toolssearch notes → summaries → action items → transcripts
05
Reply sent back via Linq APImeeting notes, summaries, action items
06
User receives iMessage response

Try it yourself

Clone the repo, add your API keys, and deploy your own Granola meeting notes agent on iMessage in minutes.

Your Cart
Your cart's looking a little light.Looks like your cart is empty—it's time to add your
gears and make it unforgettable.
Shop our best sellers
Digital Card
Digital Card$14.99
Hub
Hub$29.99
Badge
Badge$19.99
Mini Card
Mini Card$12.99