Meeting transcripts with speaker labels, on your own PC.
Diarist records a meeting, or imports a recording, separates up to eight speakers, and stores the transcript in a searchable database on your computer. No cloud, no account, no Python.
Linux is planned. macOS is not: nobody on the project owns a Mac.
If you use a coding agent (Claude Code, Codex or similar), the agent setup guide lets it check your PC, pick the models and set everything up.
- Speaker 1 Let's start with last week's numbers.
- Speaker 2 An hour of audio came back in under three minutes.
- me And nothing left the machine.
- Speaker 3 Then we ship the beta.
How it works
Live
Press Record. Your microphone is "me"; the sound your computer plays (Teams, Zoom, Meet, a browser) is split into the other speakers. Text appears in about a second. When you stop, the recording is processed once more with the full context, and the names you gave people during the meeting carry over.
- Ctrl+Alt+R starts a recording from any app.
- GPU memory: budget 2 GB, measured on an RTX 3080.
- Audio is kept as lossless FLAC, about 90 MB per hour, for 30 days by default. Transcripts are kept until you delete them.
From a file
Drop in m4a, mp3, wav, flac, ogg, mp4, mkv and more. On an RTX 3080 an hour of audio takes about two minutes, about 30 times faster than real time over the whole import.
- English by default; 40+ languages with Nemotron 3.5, 30 of them offered in the app's language lists.
- Peak GPU memory 2.6 GB with the English model, 1.82 GB with Nemotron 3.5, measured on a 77-minute file.
- File jobs wait until a recording stops, so the two never run at the same time.
Rename Speaker 2 to Alice once and the name sticks. Merge labels, recolour, move a line to the right person. Search every transcript at once. Export Markdown, text, JSON, SRT or VTT.
Speaker separation
Speaker separation runs on NVIDIA's Nemotron 3 Diarization. On VoiceArena Diarization-Bench v1, the one independent benchmark that scores every diarizer the same way, it has the lowest error rate of the systems listed: DER 14.7, against 19 to 31 for the others. Up to eight speakers per recording.
Measured on the author's own Zoom meetings on an RTX 3080: 0.2 to 0.3 percent of words went to the wrong speaker; within a second of a speaker change, 5.5 to 7.8 percent with Nemotron 3.5 and 5.6 to 12.7 with the EN model.
Where it struggles
- People talking over each other.
- Far-field microphones and noisy rooms.
- A ninth speaker, who is merged into an existing label.
- Live labels, which are provisional until the pass after Stop.
Models are files you own
Diarist is a harness for speech models, not an application built around one model. The runtime and the models are files in folders on your disk. The app's job is to run them together, tell you what it is doing, and stay out of the way.
Plain folders.
The runtime and every model are ordinary files under models\ and engine\ in your data folder. Drop a file in, press Refresh, use it.
Your PC, your choice.
CUDA, Vulkan or CPU runtime; models by how much GPU memory you have. The setup screen proposes, you decide, and you can change it later.
No gates.
Setup can be skipped. Models the app has never heard of can be added by URL or by file. A runtime version can be pinned, and rolled back by moving a folder.
Nothing silent.
Every download shows its address, hash, size and destination, with Retry and Copy link. When the app cannot do something, it says what is missing and offers the fix.
Measured swaps.
A new model can be compared on your own recordings with the evaluation tools in the repository before you rely on it.
If you have used ComfyUI, this will feel familiar. If you have not, you do not need to.
Privacy
Audio, transcripts, names, settings and logs stay in one folder on your computer.
The app connects to the internet only when you press a button that says so: installing the runtime (from GitHub), downloading a model (from Hugging Face), checking for a newer runtime, or checking for updates. It never checks anything on its own. There is no account, no analytics and no crash reporting. A crash leaves a report in the data folder's logs; it is never sent.
This website is the same: no cookies, no analytics, no third-party requests.
Requirements
Runtime package by GPU
| Your GPU | Package | Status |
|---|---|---|
| NVIDIA with a CUDA 13 driver (R580 or newer; 610.88 measured) | CUDA | Measured on an RTX 3080 |
| AMD, Intel or older NVIDIA driver | Vulkan | Measured on an NVIDIA card only; AMD and Intel untested |
| No usable GPU | CPU | Measured on a Ryzen 9 5900X: about 5 times real time |
GPU memory
| Card | What works |
|---|---|
| 4 GB | File mode with Nemotron 3.5 and low-VRAM mode; live is borderline |
| 6 GB | Live and file mode comfortably |
| 8 GB and up | Everything |
Other requirements: Windows 10 (1803 or newer) or Windows 11, 64-bit; about 1.6 GB of disk for the runtime and default models; recordings about 90 MB per hour; 8 GB of RAM is comfortable.
Models
- Nemotron 3 Diarization (speakers, 102 MB)
- Nemotron Speech Streaming EN 0.6B (English, default, 668 MB)
- Nemotron 3.5 ASR Streaming (40+ languages, optional, 742 MB)
Status
0.1.0-beta.2, released 16 Oct 2026, is the second beta. Installed copies of beta.1 reach it through Check for updates.
What's new in beta.2
- Imports and the pass after Stop are more accurate. They run the speech model at its full lookahead and the speaker model with its offline geometry. On the hand-labelled AMI meeting the word error rate went from 19.8 to 18.0 percent with the EN model and from 23.0 to 20.7 with Nemotron 3.5, every Zoom meeting in the evaluation set improved, and the speech pass runs about 2.6 times faster. Live recording keeps its low-latency settings.
- Languages follow the model. The language lists show what the installed speech models cover, 30 languages with Nemotron 3.5. A recording or import in a language the selected model does not cover runs on an installed model that does, or offers the Nemotron 3.5 download first. Imports ask for the language, and Japanese and Chinese are now passed to the model instead of running as automatic detection.
- Crash reports stay on your PC. A crash leaves a report in the data folder's logs; the next launch says so and offers Copy report for a bug report. Nothing is sent anywhere.
- The Vulkan and CPU runtime packages run. Beta.1 always asked for the CUDA device, so they could not transcribe or record. Measured on the development PC only: Vulkan on an RTX 3080 at 25 to 28 times real time, CPU on a Ryzen 9 5900X at about 5 times.
- Playback at a usable level. A quiet meeting is raised so its loud speech peaks near full scale, with a volume slider and an Auto level button that plays the audio as stored. The stored audio does not change.
- A new app icon in a light and a dark variant; the taskbar button follows the taskbar theme.
The full changelog and the release notes
Measured on the development machine (Windows 11, RTX 3080 10 GB)
- File import
- Live recording
- The post-pass
- Search
- Export
- The installer
- The updater, once (beta.1 to beta.2)
Untested so far
- The Vulkan and CPU runtime packages beyond the development PC (an RTX 3080 and a Ryzen 9 5900X)
- Every machine that is not the author's
Next: punctuation restoration, better handling of speaker changes, recording without headphones, and recognising the same person across meetings.
Roadmap, changelog and known issues
Open source
MIT licence. The runtime (Apache-2.0) and the models (OpenMDW-1.1, NVIDIA Open Model License) are downloaded at first run under their own licences. There is no paid tier, no licence key and no account. Free forever. Speaker separation is part of the app. Issues and pull requests on GitHub.