Local-first meeting recorder for macOS. Records your calls, transcribes them on-device, and writes the notes for you.
Diarized transcript at the bottom (Me vs Them, every line timestamped). Claude-structured notes on top — in whatever language the call was in.
Granola is great. Until you're on a Russian call. Or German. Or Polish. Or your laptop is in airplane mode. Or you don't want a third-party server holding your client conversations.
Hlopya is the local alternative.
- 🎙️ Records both sides. System audio via Core Audio Taps + your mic via AVAudioEngine. No virtual cable hacks.
- 🌍 Multilingual transcription that actually works. Built on NVIDIA Parakeet v3 — trained on 25 European languages. In our internal tests it outperforms Whisper-large on Russian, German, Polish, French, Spanish, and Italian — the languages where most "AI notetakers" silently fall apart.
- 🔒 Everything stays on your Mac. Audio + transcription never leave the device. AI notes are the only step that calls out (your Claude API key, your bill).
- ⚡ Auto-records calls. Detects when Zoom/Meet/FaceTime grabs your mic and starts recording. You forget. It remembers.
- 📝 Notes worth keeping. Summary, action items, decisions, enriched bullets — generated by Claude from the diarized transcript, then exported straight to your Obsidian vault.
Type whatever you want during the call — half-words, half-thoughts, "ask about pricing", "weird answer at 12:30". When the call ends, Claude reads the diarized transcript plus your scratch notes and rewrites everything into the clean Enhanced view above. The raw notes stay too, so you can always see what you actually thought in the moment vs the cleaned-up version.
flowchart LR
A[🎙️ Mic<br/>AVAudioEngine] --> M[Mix +<br/>Echo Cancel]
B[🔊 System Audio<br/>Core Audio Taps] --> M
M --> T[On-device STT<br/>Parakeet v3]
T --> N[Claude<br/>structured notes]
N --> O[(Obsidian<br/>vault)]
M --> F[(combined.wav<br/>L=you, R=them)]
Each session lands in ~/recordings/{YYYY-MM-DD_HH-MM-SS}/:
| File | What it is |
|---|---|
mic.wav |
Your voice (16 kHz mono) |
system.wav |
Everyone else (16 kHz mono, captured at 48 kHz then downsampled) |
combined.wav |
Stereo: left = you, right = them. Open in Audacity, you'll see why. |
transcript.json / transcript.md |
Diarized transcript with timestamps |
notes.json |
Summary · decisions · action items · enriched notes |
personal_notes.md |
Anything you typed during the call |
meta.json |
Title, participant mapping, custom vocabulary hits |
Easiest path — download the signed + notarized .app from the latest release, drag to /Applications, open. Zero warnings. Tested on macOS 14.2 → 15.x.
First launch will ask for:
- 🎤 Microphone (your voice)
- 🖥️ Screen & System Audio Recording (the other side of the call — yes, macOS bundles them)
Both are local. Hlopya does not stream audio anywhere.
You'll also be prompted for a Claude API key if you want AI notes. Skip it and you still get recordings + transcripts.
brew install xcodegen
git clone https://github.com/VCasecnikovs/hlopya.git
cd hlopya
make install # builds Release, copies to /ApplicationsOther targets:
make build # build only (no install)
make debug # debug build
make run # build + run debug
make clean # nuke cachesArchitecture, build gotchas, and the signed-release recipe live in the project Makefile.
Live state — red Stop button, floating 00:22 timer that stays visible no matter what window you're in, REC badge on the active session.
Settings → Recording → Auto-record calls (or toggle from the menu bar). Hlopya watches kAudioDevicePropertyDeviceIsRunningSomewhere. The moment Zoom, Meet, FaceTime, or any other app grabs your mic for 2+ seconds, recording starts. 5-second cooldown after stop prevents feedback loops.
Names, jargon, product names — Parakeet doesn't know your CEO's last name and won't guess it right. Drop terms into Settings → Vocabulary and they get biased into the transcription. Especially helpful for Russian/Polish names that English-leaning models butcher.
Set your vault path in Settings. Each completed session gets exported as a Markdown note with frontmatter (date, participants, duration), summary, action items, and the full transcript. Wikilinks resolve to your existing People/Orgs notes.
- Whisper.cpp fallback for languages outside Parakeet's set (Hindi, Japanese, Arabic)
- Speaker diarization beyond mic/system split (multi-person on the same channel)
- Live transcription during the call
- Local LLM option for notes (no Claude API dependency)
Swift 5.9 · SwiftUI · Core Audio · AVFoundation · FluidAudio (Parakeet v3 CoreML) · Claude API · XcodeGen · Make.
MIT. Use it, fork it, ship it commercially, improve it. PRs welcome.
🍵 One soft ask. If you're a big company — say, anyone your aunt would recognize, or 1000+ employees — and you want to use Hlopya internally or build on top of it, please book a 30-minute chit-chat with Vadims first. No paperwork. No fees. No NDA. Vadims just wants to hear what you're building and say hi.
Built by @VCasecnikovs. Made because Granola doesn't speak Russian.
