Vibecode Granola

track this build6 phases, 21 steps, beginner friendly
YES · one-shottable
price $14/moyou'd save $168/yrbuild time one sittingcategory 🎙️ meeting notesreplaced by 0 people

A local recorder plus Whisper transcription plus an LLM note template covers the core personal loop in one sitting. The paid product is mainly polish, meeting context, sync, and team workflow.

the project pack5 files · written for this build, step by step
README.md
# Granola · indie build

A local meeting-notes app for your Mac: a menu bar button records system audio and your microphone, whisper.cpp transcribes on your machine, an LLM turns the transcript plus your rough notes into a summary with decisions and action items, and everything lands as Markdown files in a folder you own. Nothing leaves the machine except the optional LLM call.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| App | Swift 6, SwiftUI, MenuBarExtra, macOS 14+ | system audio capture is a native API; wrapping it in Electron is where these projects stall |
| Audio | ScreenCaptureKit for system audio, AVAudioEngine for the mic | no virtual audio driver to install, and two separate taps you can mix |
| Transcription | whisper.cpp via the whisper-cli binary | local, free, good enough on Apple Silicon |
| Summaries | An LLM API behind a small provider interface | the one network call, swappable and optional |
| Storage | Markdown files in ~/MeetingNotes | greppable, portable, no index to corrupt |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **A Mac with Apple Silicon running macOS 14 or newer** · the Mac you have
  - Why: ScreenCaptureKit audio capture needs macOS 13+, and local transcription is only pleasant on Apple Silicon.
  - Get it: Apple menu > About This Mac. Update through System Settings > General > Software Update if below 14.
  - Verify: sw_vers prints ProductVersion 14 or higher
- [ ] **Xcode 16 or newer** · free
  - Why: Swift, SwiftUI and the macOS SDK come with it. The Command Line Tools alone are not enough for a signed menu bar app.
  - Get it: Install from the Mac App Store (it is large; start the download first). Open it once to accept the licence and install components.
  - Verify: xcodebuild -version prints Xcode 16 or higher
- [ ] **Homebrew, cmake and ffmpeg** · free
  - Why: cmake builds whisper.cpp; ffmpeg is the easiest way to inspect and convert audio while you debug Phase 1.
  - Get it: Install Homebrew from brew.sh, then: brew install cmake ffmpeg
  - Verify: cmake --version and ffmpeg -version both print
- [ ] **whisper.cpp built from source** · free
  - Why: The whisper-cli binary is what Phase 2 shells out to.
  - Get it: git clone https://github.com/ggml-org/whisper.cpp && cd whisper.cpp && cmake -B build && cmake --build build --config Release. The binary is build/bin/whisper-cli.
  - Verify: ./build/bin/whisper-cli -h prints usage
- [ ] **The medium.en whisper model (about 1.5 GB)** · free, 1.5 GB of disk
  - Why: Without a model file there is no transcription. medium.en is the quality-speed balance for English meetings.
  - Get it: Inside the whisper.cpp folder: ./models/download-ggml-model.sh medium.en. It saves to models/ggml-medium.en.bin. Use small.en (about 500 MB) if disk or speed is tight.
  - Verify: ls -lh models/ggml-medium.en.bin shows about 1.5G
- [ ] **An LLM API key (OpenAI or Anthropic)** (optional) · pay per use; a one-hour meeting summary costs a few cents
  - Why: Phase 3 sends the transcript to a model for the summary. Without a key the app still records and transcribes; it just skips the summary.
  - Get it: Anthropic: console.anthropic.com > API Keys > Create Key. OpenAI: platform.openai.com/api-keys > Create new secret key. Copy it once; it is not shown again. Put it in .env, never in the source.
- [ ] **A Groq or OpenAI key for hosted transcription** (optional) · pay per use; Groq has a free tier
  - Why: An optional fast path when local transcription is too slow on your machine. Local stays the default.
  - Get it: Groq: console.groq.com > API Keys. OpenAI: the same key as above works for the audio endpoint.
- [ ] **Screen Recording and Microphone permissions** · free
  - Why: System audio arrives under the Screen Recording permission (no separate audio permission exists); the mic needs its own. Both are granted once per app build.
  - Get it: macOS prompts on first use. If you dismiss the prompt, the app must be relaunched before it can ask again; otherwise System Settings > Privacy & Security > Screen Recording and > Microphone.

## Quick start

```sh
swift run capture-cli --seconds 30 --out /tmp/test.wav
afinfo /tmp/test.wav
/path/to/whisper-cli -m /path/to/ggml-medium.en.bin -f /tmp/test.wav
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Sync across devices and a mobile app. That is most of the subscription.
- Automatic calendar joining and bot attendees.
- Someone else's servers and support when a recording is lost.
- sync across devices
- the mobile app
- automatic calendar joins
- someone else's servers & support

If one of those is essential to you, that is the reason to keep paying for Granola, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

They pay because it is always on, nicely integrated with calendar/work calls, and trustworthy enough not to lose meeting history.

what you lose

xsync across devices

xthe mobile app

xautomatic calendar joins

xsomeone else's servers & support

share on X ↗"I just replaced Granola ($14/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

MeetilyA local meeting recorder that writes the transcript and summary without inviting a bot or your legal department.28kjun 2026open sourceAnarlogGranola rearranged, literally: local recording, local transcript and your own model.9.0kaug 2026open sourceOpenWhisprA cross-platform local notepad that records the call, separates speakers and keeps searchable notes.5.2kaug 2026open source

all 5 free alternatives to Granola →· no votes, no pay-to-list · just what's real

the numbers

Granola pricing

planmonthlyannual (per mo)what you get
basic$0/user$0/userUnlimited meetings; only the most recent 30 days of meeting history remain accessible.
business$14/userUnlimited meetings and unlimited meeting-history access.
enterprise$35/userStarts at $35/user/month; unlimited meetings/history plus SSO and admin controls.

free tierUnlimited meetings, but only the latest 30 days of meeting history are accessible.

billingmonthly only, no annual plan; subscriptions are per workspace and seats are prorated

hidden costsThe same person can be billed separately in multiple paid workspaces. Active seats are prorated when added or removed; pending invitations are not billed. No per-minute, storage or meeting overage fees are published.

verified 2026-08-11 · source ↗

questions
Is Granola free?

The free Basic plan includes AI notes but only limited meeting history. Paid is Business at $14/mo (checked 2026-08-07).

Vibecode Granola

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal Granola replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does Granola cost?

Granola costs about $14/month (Business, checked 2026-08-07), which is $168 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing Granola?

Honestly: sync across devices; the mobile app; automatic calendar joins; someone else's servers & support. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Granola?

Yes: Meetily (A local meeting recorder that writes the transcript and summary without inviting a bot or your legal department.) Anarlog (Granola rearranged, literally: local recording, local transcript and your own model.) OpenWhispr (A cross-platform local notepad that records the call, separates speakers and keeps searchable notes.) All 5 curated free alternatives are at vibecodeit.com/granola/alternatives. The prompt is for when you want it exactly your way.