Minute writes down every word while people are still talking — and knows who said what.
Copy any part, catch up on what you missed, ask the meeting a question, get the summary. Without leaving your call.
Windows 10 and 11 · macOS 14.2 or later (Intel Mac) · Free and open source · Lire en français
Most note-takers make you wait until the meeting is over to see a single line. Until then you can't copy what was just decided, you can't check a figure, and if your mind wandered for two minutes, it's gone.
Minute writes the transcript during the meeting, about a second after each sentence. It captures your microphone and the system audio as two separate sources, so it works with Teams, Zoom, Meet or any other app, without adding a bot to the call.
Live transcript, with who's speaking. Every voice is recognised by its timbre, on your computer, and gets its own colour. Click a voice to name it — or let Guess who's speaking work it out from the conversation ("Priya, can you…" → it's Priya who answers).
Several languages in one meeting. French, English, Italian… each sentence stays in the language it was spoken in.
The Dynamic Island. During a meeting the window steps aside: a floating pill shows the last sentence. Open it for live captions, quick notes and questions — without bringing Minute back.
Catch up, ask, summarise. "What did I miss?" gives you the last 2, 5 or 10 minutes in a few bullets, starting with anything that needs you. "What did we decide about the budget?" answers with links to the exact moments — even in a two-hour meeting. At the end: summary, decisions, action items, key points, open questions, and the follow-up email.
Copy anything, any time. The whole meeting, the last 5 or 10 minutes, or since a marked moment — as plain text or formatted for Outlook, Word or Teams.
Your calendar. Google Calendar or any iCal link: the next meeting is ready to record, with its title and attendees. Minute can remind you 10 and 5 minutes before.
Private mode. For sensitive meetings (Windows): transcription runs 100 % on your computer, every outside connection is blocked, no audio is kept, and meetings are deleted after the retention period you choose.
And the details. Search across all your meetings · archive and a 30-day trash · merge or split meetings · 9 colour themes, light and dark · automatic updates (never during a meeting) · report a problem in one click · English, French and Italian interface.
Windows 10 or 11 — download Minute-Setup-Windows.exe
and run it. It installs for your account, no admin rights needed.
Windows may say "Windows protected your PC" (the app isn't signed with a paid certificate yet): click More info, then Run anyway.
macOS 14.2 or later — download the .dmg for your Mac
(Apple Silicon or
Intel) and drag Minute to Applications.
The app is signed and notarized by Apple, so it opens straight away. On your first recording, allow Microphone and System Audio Recording.
- Get a free Groq key — one minute, see below — and paste it when Minute asks.
- Check that your microphone's level bar moves.
- Click the red button, or use the global shortcut CtrlAltR.
During a meeting, Minimize turns the window into the Dynamic Island.
Minute has no server and no account: it uses your keys, kept encrypted by your system (DPAPI on Windows, Keychain on macOS). Only one is required.
- Go to console.groq.com and sign in.
- Open API Keys › Create API Key, name it "Minute", confirm.
- Copy the key (it starts with
gsk_) — it won't be shown again. - In Minute: Settings › Transcription › Groq key, paste, Save. A ✓ confirms it works.
The free tier allows 20 requests per minute and about two hours of audio per hour; Minute manages that budget for you. At worst, sentences arrive a few seconds late — nothing is ever lost. The same key also writes the summaries.
Minute can transcribe offline, on your own OpenAI-compatible transcription server — for example Speaches (faster-whisper) on a home server with a GPU, or NVIDIA Parakeet TDT 0.6B v3 on a CPU-only machine. No quota, and the audio stays with you. Settings › Transcription › Mode: Offline, then address, optional model and key, Test. Only the chosen mode transcribes: offline, nothing goes to Groq; if the server doesn't answer, sentences wait for it. The other mode's settings and key stay saved: switch back Online (Groq) in one click.
On Groq's free plan, each Whisper model has its own quota: when whisper-large-v3-turbo runs out, Minute switches
to whisper-large-v3 on its own.
Choose the provider in Settings › Intelligence and paste its key:
| Provider | Where to get a key | Good to know |
|---|---|---|
| Groq | already done | Free and fast. The default. |
| Claude (Anthropic) | console.anthropic.com › API Keys | The best writing quality. Pay as you go (a few cents per summary). |
| Gemini (Google) | aistudio.google.com › Get API key | Generous free tier, very long context. |
| OpenAI | platform.openai.com › API keys | GPT models. Pay as you go. |
The simplest way: an iCal link (read-only, nothing to set up at Google). In Google Calendar: Settings › [your calendar] › Integrate calendar › Secret address in iCal format. Copy it, then in Minute: Settings › Calendar › iCal link. For Outlook: Settings › Calendar › Shared calendars › Publish a calendar, and copy the ICS link.
With "Sign in with Google" (organisations where secret links are disabled): an administrator creates an OAuth client once for everyone.
- console.cloud.google.com › New project ("Minute").
- APIs & Services › Library › Google Calendar API › Enable.
- APIs & Services › OAuth consent screen: Internal (Google Workspace), or External with your addresses
as test users for a Gmail account. Add the scope
…/auth/calendar.events.readonly. - Credentials › Create credentials › OAuth client ID › Desktop app › Create.
- Copy the client ID and client secret; in Minute: Settings › Calendar › Advanced, paste, Save, then Sign in with Google.
Minute only reads your events (title, times, attendees, call link) — nothing else in your account.
Settings › Privacy. Minute downloads the open-source whisper.cpp engine once (about 570 MB, or 200 MB for the fast model), then blocks every outside connection. For summaries, install LM Studio or Ollama: Minute finds them on its own.
Local transcription needs a recent computer. On a desktop processor without a dedicated graphics card, pick the Fast model to keep up with speech.
| Windows | macOS | |
|---|---|---|
| Start / end a meeting (press twice to end) | CtrlAltR | ⌃⌥R |
| Mark a moment | CtrlAltM | ⌃⌥M |
| Copy the transcript | CtrlAltC | ⌃⌥C |
| Dynamic Island | CtrlAltT | ⌃⌥T |
- Meetings live on your computer, in
Documents/Minute: one readable folder per meeting. - In standard mode, only the audio of each sentence goes to Groq to be transcribed (in offline mode: to your server, and nowhere else), and only the text goes to the AI you picked for summaries. Voice recognition runs on your computer.
- No telemetry, no account, no Minute server.
- For organisations: a GDPR note for your data protection officer (in French).
English is translated into French in my transcript
Set Settings › Transcription › Meeting language to Multiple languages (auto-detect), the default: each sentence stays in its own language.
Nothing shows up for the other participants
Make sure System audio is on, on the home screen. On macOS, allow System Audio Recording in System Settings › Privacy & Security.
Does the Dynamic Island show up when I share my screen?
Not by default: it's hidden from screen sharing and screenshots. To show it, turn off Settings › Compact mode › Hide from screen sharing and screenshots.
I deleted a meeting by mistake
It's in the Trash (bottom of the sidebar) for 30 days: right-click › Restore.
Minute is free, open source and built in my spare time. If it saves you time, buy me a coffee on Ko-fi ☕
- Found a problem? In Minute: Settings › About › Report a problem fills in a GitHub issue for you, with a technical log (never any meeting content). Or open an issue.
- An idea? Suggest it.
Measured with npm run bench (scripts/bench.mjs), which runs the app's own code (transcription
calls, prompt, filter, CAM++ voice prints, voice clustering) on four meetings of the AMI Meeting Corpus.
2026-10-05 · Apple M1, 16 GB · Minute 0.6.10. Published as they came out.
AMI is English. These numbers say nothing about French.
Transcription (4 meetings, 92 min of audio, 14,634 reference words)
| Engine | WER | Real-time factor |
|---|---|---|
whisper.cpp turbo (ggml-large-v3-turbo-q5_0.bin) |
34.2 % | 0.281 |
whisper.cpp small (ggml-small-q5_1.bin) |
36.5 % | 0.085 |
Groq whisper-large-v3-turbo |
not measured | not measured |
Per meeting (turbo / small): ES2004a 29.8 / 32.2 % · IS1009a 26.6 / 29.6 % · TS3003a 26.1 / 28.5 % · EN2002a 40.5 / 42.5 %.
- Groq was not measured: no
GROQ_API_KEYin the environment for this run. Set it and rerun to add it. - WER = (substitutions + deletions + insertions) / reference words, pooled over the 4 meetings. Normalization: lowercase, punctuation removed, whitespace collapsed. Nothing else, so fillers ("um", "uh"), overlapping speech the engine doesn't write down, and numbers written as digits all count as errors.
- Audio: the Mix-Headset track (all headset mics mixed into one), sent in pieces of at most 16 s cut between words
like the app's segmenter, with the app's prompt and filter, language
auto. - Real-time factor = processing time / duration of the audio sent (lower is faster). Model loading excluded.
- whisper.cpp: the app's local mode ships for Windows only (v1.9.2, CPU build). On this Mac the bench drives the
same
localStt.tscode with Homebrew'swhisper-server1.9.4, which runs on the GPU (Metal). The speeds don't carry over to a Windows PC.
Speakers (CAM++ voice prints, then the app's Voices clustering with its real thresholds)
| Meeting | Real speakers | Found | Speaking time attributed correctly |
|---|---|---|---|
| ES2004a | 4 | 4 | 80.8 % |
| IS1009a | 4 | 4 | 78.2 % |
| TS3003a | 4 | 5 | 84.3 % |
| EN2002a | 4 | 3 | 60.7 % |
- Oracle segmentation: the reference speaker turns are given. This measures how voices are grouped, not speech
detection. Each turn gives one voice print, passed to
assign, then the end-of-meetingrefinepass runs. The in-meetingconsolidate(every 2 minutes) is not replayed. - Attribution = share of speaking time given to the right person, after the best one-to-one match between found groups and real speakers (every assignment is tried). Turns with overlapping speech are used as they are.
Data: AMI Meeting Corpus, University of Edinburgh,
CC BY 4.0. Mix-Headset audio and manual annotations v1.6.2 (words and
speaker segments) of the test-set meetings ES2004a, IS1009a, TS3003a and EN2002a, downloaded by the script into
bench-data/ (ignored by git, no audio in this repo). The official annotations give words and speaker turns from one
source, so neither the Hugging Face copy nor separate RTTM files were needed.
npm install
npm start # build and run
npm test # unit tests
npm run bench # benchmark (downloads ~200 MB of AMI audio + whisper.cpp models)
npm run dist:win # Windows installer → release/Pushing a v* tag builds Windows and macOS on GitHub Actions and publishes the release, including the files the
auto-updater reads. Electron · React · TypeScript · Silero VAD and CAM++ (ONNX, WebAssembly) · whisper.cpp.
Third-party components: THIRD_PARTY_NOTICES.md.
MIT © 2026 Adrien Robino



