Skip to content

Repository files navigation

Franola

Franola Mk1

A premium, Granola-style AI meeting-notes app for Windows. Capture system audio + mic → transcribe with Groq → clean structured notes from a local LLM.

Version Built with Tauri Platform License

Report a bug · Author · samcodeman.com


What is Franola?

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-turbo in ~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.

How it works

 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

Tech stack

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

Prerequisites

  • Windows 10/11
  • Rust (MSVC toolchain) + Microsoft C++ Build Tools
  • Node 18+ and pnpm (corepack enable)
  • A Groq API keyhttps://console.groq.com/keys
  • An OpenAI-compatible chat endpoint running (e.g. CLIProxyAPI on :8317)

Quick start (development)

git clone https://github.com/SamirSengupta/Franola.git
cd Franola
pnpm install
pnpm tauri dev

Build a Windows installer

pnpm tauri build

Produces:

  • src-tauri/target/release/bundle/nsis/Franola_0.1.0_x64-setup.exe
  • src-tauri/target/release/bundle/msi/Franola_0.1.0_x64_en-US.msi

First run

  1. On first launch the Settings dialog opens — paste your Groq API key.
  2. Confirm the LLM Base URL (http://localhost:8317/v1) and Model.
  3. Toggle System audio / Microphone, then Save.
  4. Hit ● Record, run your meeting, then ■ Stop.
  5. Click ✨ Generate notes, then Save.

The notes prompt is built in and tuned — there's nothing to configure.

Configuration

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\.

Project structure

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

Branding

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.

Roadmap

  • Runtime-verify WASAPI loopback across audio stacks (fallback to wasapi crate)
  • Audio device picker in Settings
  • Export notes to Markdown / clipboard
  • Speaker diarization

Credits

Built by Samir Sengupta · samcodeman.com. Transcription by Groq. Shell by Tauri.

License

MIT — see LICENSE.

About

open-source-granola-ai-note-taking-app

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages