A premium, Granola-style AI meeting-notes app for Windows. Capture system audio + mic → transcribe with Groq → clean structured notes from a local LLM.
Franola listens to your meeting — both what you say and what you hear — transcribes it live, and turns the transcript into polished, shareable notes. No local ML models, no heavy runtime: just two API calls. Mk1 is the first public release.
- 🎙️ Dual capture — your microphone and system audio (WASAPI loopback), mixed together.
- ⚡ Live transcription — streamed to Groq
whisper-large-v3-turboin ~15 s batches. - ✨ AI notes — a tuned, built-in prompt produces TL;DR, key points, decisions, action items & open questions.
- 🧠 Bring your own LLM — any OpenAI-compatible endpoint (default
http://localhost:8317/v1, e.g. CLIProxyAPI). - 🤍 All-white, flat, minimal UI — premium and distraction-free.
- 🪶 Tiny — ~8 MB binary, ~2.3 MB installer. Rides on the system WebView2.
- 🔒 Local-first — notes and settings are plain JSON on your machine; audio is only sent to Groq for transcription.
mic ─────┐
├─► downmix 16 kHz mono ─► mix ─► ~15 s WAV ─► Groq STT ─► live transcript
system ──┘ (WASAPI loopback) │
▼
local OpenAI-compatible LLM ◄── "✨ Generate notes"
│
▼
structured Markdown notes → saved as JSON
| Layer | Choice |
|---|---|
| Shell | Tauri 2 (Rust) |
| UI | React 19 + TypeScript + Vite 7 |
| Audio | cpal (WASAPI) → 16 kHz mono, hound WAV encoding |
| Transcribe | Groq audio/transcriptions (whisper-large-v3-turbo) |
| Summarize | Any OpenAI-compatible chat/completions endpoint |
| Storage | JSON files in %APPDATA%\com.franola.app |
- Windows 10/11
- Rust (MSVC toolchain) + Microsoft C++ Build Tools
- Node 18+ and pnpm (
corepack enable) - A Groq API key — https://console.groq.com/keys
- An OpenAI-compatible chat endpoint running (e.g. CLIProxyAPI on
:8317)
git clone https://github.com/SamirSengupta/Franola.git
cd Franola
pnpm install
pnpm tauri devpnpm tauri buildProduces:
src-tauri/target/release/bundle/nsis/Franola_0.1.0_x64-setup.exesrc-tauri/target/release/bundle/msi/Franola_0.1.0_x64_en-US.msi
- On first launch the Settings dialog opens — paste your Groq API key.
- Confirm the LLM Base URL (
http://localhost:8317/v1) and Model. - Toggle System audio / Microphone, then Save.
- Hit ● Record, run your meeting, then ■ Stop.
- Click ✨ Generate notes, then Save.
The notes prompt is built in and tuned — there's nothing to configure.
| Setting | Default | Notes |
|---|---|---|
| STT model | whisper-large-v3-turbo |
Any Groq transcription model |
| LLM base URL | http://localhost:8317/v1 |
Must expose /chat/completions |
| LLM model | gpt-4o |
Whatever your endpoint serves |
| Chunk length | 15 s |
Lower = more live, more API calls |
| Capture | System + mic | Either can be turned off |
Settings and notes live in %APPDATA%\com.franola.app\.
Franola/
├─ src/ React UI (App, Settings, Markdown, Logo, api, types)
├─ src-tauri/
│ ├─ src/
│ │ ├─ audio.rs cpal capture + resample + mix + chunk → STT
│ │ ├─ stt.rs Groq speech-to-text client
│ │ ├─ llm.rs OpenAI-compatible summary client
│ │ ├─ store.rs settings + notes JSON persistence + internal prompt
│ │ └─ lib.rs Tauri commands + state
│ └─ icons/ app icons (generated from branding)
├─ branding/ logo suite (mark, avatars, wordmark, banner)
└─ franola-logo.png source logo
The logo suite lives in branding/:
| File | Use |
|---|---|
franola-avatar-dark.svg |
GitHub / social profile picture (lime on black) |
franola-avatar-light.svg |
Profile picture on light surfaces |
franola-mark.svg |
Monochrome mark |
franola-wordmark.svg |
Portfolio / site header |
franola-banner.svg |
GitHub profile README / hero banner |
Brand colors: lime #ADBA3D, ink #0D0D0D. App UI: all-white minimal.
- Runtime-verify WASAPI loopback across audio stacks (fallback to
wasapicrate) - Audio device picker in Settings
- Export notes to Markdown / clipboard
- Speaker diarization
Built by Samir Sengupta · samcodeman.com. Transcription by Groq. Shell by Tauri.
MIT — see LICENSE.