The problem
Every other tool sends a bot into your meeting
Otter, Fireflies, tl;dv — they all join as a participant. Everyone can see it. Your audio is uploaded to their servers. You're locked into their ecosystem.
Visible to everyone
A bot joining your call signals to all participants that you're recording. Awkward in client calls, problematic in sensitive discussions.
Audio sent to the cloud
Your meeting audio — containing confidential business information — is uploaded to third-party servers you don't control.
Compliance risk
NDA clauses, security policies — cloud recording creates real legal exposure. Many companies ban these tools entirely.
How it works
Three steps. Everything stays local.
Record
Hit record. Mic and system audio are captured as separate streams — no bot, nothing visible to anyone else. Jot your own notes in the live notepad while you talk.
Transcribed live
whisper.cpp transcribes in small chunks while the meeting is still happening, entirely on your machine. When you stop, the transcript is already there.
Get structured notes
Your local model — or your own API key — turns the transcript into a summary, action items, and decisions, shaped by the notes you took. Export any meeting as Markdown.
Features
Built for privacy-conscious teams
No bot, no trace
Silent capture — no recording indicator visible to other participants.
Live local transcription
whisper.cpp transcribes during the meeting, fully offline. No cloud, no waiting at the end.
Your notes shape the AI
Take notes while you record — the summary emphasises what you flagged, not just what was said.
Local or BYOK summaries
Use a local model via Ollama, or bring your own API key. Any OpenAI-compatible endpoint works.
Mic vs system audio
Your voice is always labelled. Rename any speaker, edit any transcript line.
Markdown output
Export notes to any folder. Works with Obsidian, Notion imports, git.
Search and tags
Full-text search across transcripts, notes, and summaries. Tag meetings to keep them organised.
Free & open source
AGPL-3.0. No account, no telemetry, no usage limits. Audit every line on GitHub.
Open source
Free. Open source. Yours.
Harknotes is licensed under the AGPL-3.0. There's no account, no subscription, no usage limit, and no telemetry — a privacy tool you don't have to take on faith. You bring the AI: run a local model for a fully offline setup, or plug in your own API key.
Download
Get Harknotes
Free forever. No account required.
View all releases on GitHub
macOS: support is being rebuilt on the new engine and is next on the roadmap — watch the GitHub repo for updates.
FAQ
Common questions
Does a bot join my meeting?
No. Harknotes captures your system audio and microphone directly on your machine. No bot, no meeting link, no recording indicator visible to other participants.
Does my audio ever leave my machine?
Never. Transcription runs entirely locally using whisper.cpp, and summaries are local too by default — Harknotes talks to any OpenAI-compatible endpoint, like Ollama running on your own machine. If you opt in to a cloud provider with your own API key, only the text transcript is sent, directly to that provider.
Is Harknotes really free?
Yes. Harknotes is free and open source under the AGPL-3.0 license. No account, no tiers, no usage limits, no telemetry. The full source is on GitHub.
Which platforms are supported?
Linux today, with DEB and RPM packages. macOS support is being rebuilt on the new engine and is next on the roadmap; Windows will follow.
What AI model generates the notes?
Whichever one you want. Point Harknotes at any OpenAI-compatible endpoint: a local model via Ollama or llama.cpp keeps everything on-device, or bring your own API key for OpenRouter, Groq, OpenAI, and friends.
Can I take my own notes during a meeting?
Yes — a live notepad sits beside the transcript while you record, and your notes steer the AI summary: whatever you flagged gets emphasised in the final notes.
How does speaker identification work?
Harknotes captures microphone and system audio as separate streams. Your mic is labelled "User", everyone else comes through as "Meeting" — and you can rename speakers on the transcript afterwards. Full per-person diarisation is on the roadmap.
Where are my notes saved?
Everything lives in a local SQLite database on your machine, and any meeting exports to a clean Markdown file — great for Obsidian, Notion imports, or plain file storage.