Vibecode Grain

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price variesbuild time multi-daycategory 🎙️ meeting notesreplaced by 0 people

The visible meeting clips + intelligence loop is buildable, but a credible replacement needs more than the first screen. Grain earns its keep through capture, integrations, reliability, so expect a weekend or multi-day build and a narrower personal scope.

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

A local meeting archive whose hard problems are refusing to process a recording nobody consented to, transcribing long audio in chunks without losing or duplicating words at the seams, and producing notes where every claim cites a timestamp you can play.

Estimated effort: **multi-day**. 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 |
| --- | --- | --- |
| Runtime | Python 3.12 with FastAPI bound to localhost only | recordings of private conversations should not sit on a public port |
| Transcription | whisper.cpp run locally with segment and word timestamps | the audio never leaves the machine and the clock is the whole product |
| Media | FFmpeg as a subprocess for probing, chunking and clipping | one tool that already understands every container somebody will hand you |
| Storage | SQLite for meetings, transcripts and notes, media in a folder beside it | a transcript is small, a two hour recording is not |
| Notes | An optional model behind one interface, with an extractive fallback | the archive has to stay useful when no model is available |

## Before you start

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

- [ ] **Python 3.12 or newer** · free
  - Why: Runs the pipeline, the job runner and the local interface.
  - Get it: python.org, or your package manager.
  - Verify: python3 --version prints 3.12 or higher
- [ ] **FFmpeg with ffprobe** · free
  - Why: Probing, chunking and clipping all go through it, and a build without ffprobe fails at the first import rather than at the first clip.
  - Get it: Your package manager, or a static build from the official downloads page.
  - Verify: ffprobe -version and ffmpeg -version both print a version
- [ ] **whisper.cpp with a downloaded model file** · free
  - Why: Transcription runs locally, and the model file is a separate download that is easy to forget until the first job fails.
  - Get it: Build whisper.cpp and download a model file of a size your machine can actually run.
  - Verify: The binary transcribes the bundled sample and prints timestamps
- [ ] **One real recording over ninety minutes, with consent** · free
  - Why: Chunking, resume and timestamp offsets are all fine on a five minute file and all break on a long one, which is the only length that matters.
  - Get it: A recording you made of a meeting where everyone was told, or a long public talk you are permitted to use.
  - Verify: It transcribes end to end and three random citations play the right words
- [ ] **Your consent and retention policy** · free
  - Why: Both are enforced by code and asserted by tests, and writing them after the fact means writing whatever the code already does.
  - Get it: Write down who must be informed, how, and how long recordings and transcripts are kept.
  - Verify: Both appear in the README and their values are the ones the tests use

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

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

## Honest limits

This build deliberately does not replace:

- A bot that joins calls.
- Live transcription.
- CRM and calendar integrations.
- Cross meeting coaching scores.
- live multi-speaker accuracy
- calendar and CRM integrations
- cross-call team analytics
- meeting-bot auto-join

If one of those is essential to you, that is the reason to keep paying for Grain, 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

Grain: Customers pay for automatic capture, dependable speaker handling, search across calls, and notes arriving without manual file wrangling.

what you lose

xlive multi-speaker accuracy

xcalendar and CRM integrations

xcross-call team analytics

xmeeting-bot auto-join

share on X ↗"I just replaced Grain with one prompt"
the escape hatch

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

FathomRecords calls, makes clips, writes basic summaries and searches the archive; deeper customer-intelligence workflows still cost money.$0free↗

no votes, no pay-to-list · just what's real

the numbers

Grain pricing

planmonthlyannual (per mo)what you get
free$0/workspace$0/workspace1 free Notetaker seat per workspace; unlimited recordings up to 45 minutes each; personal-email accounts can record 20 meetings before upgrade; unlimited viewer seats.
starter$19/user$15/userUnlimited meeting recording and storage; 10 file uploads per month; API and integrations.
business$39/user$29/userUnlimited meetings plus conversation/revenue intelligence, coaching, trackers, custom follow-ups, CRM/dialer workflows, and MCP.
enterprisecustom—Custom enterprise security and administration; no public numeric price or limits.

free tier1 Notetaker seat per workspace; recordings are unlimited but capped at 45 minutes each; personal-email accounts can record 20 meetings before upgrade; unlimited viewers.

billingmonthly + annual; added paid seats are prorated

hidden costsEvery recording user needs a paid seat and all paid seats in one workspace must be on the same tier. After downgrade, meetings owned by users beyond the single free Notetaker can be deleted after 30 days.

verified 2026-08-14 · source ↗

questions
Vibecode Grain

Kinda. The core of Grain is buildable in a weekend with the prompt on this page, but there are real gaps: live multi-speaker accuracy, calendar and CRM integrations. Read the honest list above before committing.

How much does Grain cost?

Grain's pricing is usage-based or varies by plan · The official pricing URL is recorded, but a stable current amount was not safely recoverable in this pass. Do not publish a number until rechecked..

What do I lose by replacing Grain?

Honestly: live multi-speaker accuracy; calendar and CRM integrations; cross-call team analytics; meeting-bot auto-join. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Grain?

Yes: Fathom (Records calls, makes clips, writes basic summaries and searches the archive; deeper customer-intelligence workflows still cost money.) The prompt is for when you want it exactly your way.