Turn Plaud recordings into editable transcripts, useful notes, and answers you can trace.
An open-source, self-hosted alternative to the Plaud Intelligence workflow.
Live demo · Get started · Self-host · Docs · Community · Contribute
Keep recording with your Plaud device and the official Plaud App. localplaud downloads the raw audio and does the rest on hardware you control—no Plaud Generate button, no paid Intelligence plan. You can also upload any audio file.
Shown above: Whisper large-v3-turbo plus pyannote diarization. Click any line to seek, rename speakers once, fix text inline, and compare the corrected transcript with raw ASR.
Full-transcript coverage for long recordings, several note styles per recording, and every note shows which model and transcript revision produced it.
Answers cite the recordings they came from; each citation jumps to the moment in the audio.
Plus folders, tags, full-text search, AutoFlow automation, and exports to TXT, SRT, VTT, DOCX, PDF, and Markdown. Your edits are never overwritten, a failed stage never discards good results, and you choose per stage whether AI runs locally, on your own worker, or with a cloud provider.
Screenshots use the synthetic demo library from scripts/seed_demo.py.
Speaker labels are one of the most frequent complaints in r/PlaudNoteUsers: voices merged or split, and names that must be re-entered for every recording. Plaud's own help center says it does not automatically identify other speakers.
| localplaud | Plaud Intelligence | Otter.ai | Meetily (open source) | |
|---|---|---|---|---|
| Price | Free (MIT) + your hardware | Free 300 min/mo · Pro $17.99/mo · Unlimited $29.99/mo | Free 300 min/mo · Pro $16.99/mo | Free · Pro $10/user/mo |
| Minute caps | None | 300 / 1,200 / unlimited | 300 / 1,200 / unlimited | None |
| Where AI runs | Local, your worker, or a cloud provider you choose | Plaud cloud | Otter cloud | Local or your API key |
| Self-hostable | ✅ | — | — | ✅ |
| Speaker diarization | ✅ pyannote, editable per segment | ✅ | ✅ | Pro plan |
| Names remembered across recordings | ✅ optional local voiceprints | Your own voice only | ✅ (cloud) | Not verified |
| Speaker rename updates notes | Re-indexed instantly; notes regenerate with no per-minute fees | Regenerate summary (uses minutes) | Not verified | Not verified |
| Works with Plaud recorders | ✅ automatic raw-audio sync | ✅ | Manual file upload | Not verified |
| Bulk export | ZIP of up to 50 recordings | Per file | Business plan | Not verified |
Sources (November 2026, monthly USD pricing): Plaud plans · Otter speaker ID · Otter export · Meetily. “Not verified” means we found no public source. localplaud's cross-recording voice identification is an optional voice service that needs extra setup. Spot an error? Open an issue.
flowchart LR
recorder["Plaud recorder"] --> app["Plaud App + cloud<br/>raw-audio upload"]
app -->|"read-only sync"| audio
upload["Upload your own audio"] --> audio
subgraph localplaud["Your localplaud workspace"]
audio["Raw audio"] --> transcript["Transcribe · align<br/>identify speakers · correct"]
transcript --> knowledge["Notes · mind map · index"]
knowledge --> use["Listen · edit · Ask<br/>organize · export"]
end
Speech runs on Whisper large-v3-turbo (MLX on Apple Silicon, faster-whisper on CUDA/CPU) with pyannote speaker diarization. Text generation defaults to Ollama.
Requires Python 3.11+, ffmpeg, uv, and a running Ollama.
git clone https://github.com/skyhong2002/localplaud.git
cd localplaud
# Apple Silicon: use --extra mlx · NVIDIA: use --extra cuda
uv sync --extra faster-whisper --extra diarize --extra vad --extra local-llm
cp config.example.toml config.toml
cp .env.example .env
ollama pull llama3.1:8bFor speaker labels, accept the terms for
pyannote/speaker-diarization-community-1
and add LOCALPLAUD_DIARIZE__HF_TOKEN=hf_... to .env. On Apple Silicon, set
asr.provider = "mlx-whisper" in config.toml.
uv run localplaud init
uv run localplaud auth login # one-time Plaud OAuth
uv run localplaud doctor # check auth, ffmpeg, and providers
uv run localplaud run # sync + process + serveOpen localhost:8080. The first sync catalogs your library without downloading it; choose Import audio on any recording, and new uploads download automatically. Docker, CUDA, and remote-worker setups are in the deployment guide.
Is everything local? Plaud's App still uploads audio to Plaud's cloud. After download, processing can be fully local; cloud providers are opt-in per stage.
Can I use it without a Plaud recorder? Yes—upload files with Add audio (formats).
Is it safe to expose online? It binds to 127.0.0.1 by default. Configure
accounts, a session secret, and HTTPS first. Plaud access is
read-only.
Is it finished? It's in active development. The core workflow works end to end; full Plaud parity and broader language/hardware benchmarks are in progress.
| Topic | Read |
|---|---|
| Install and operate | Deployment · Accounts · Backups |
| Speech and speakers | Speech quality · Remote workers · Speaker identities |
| Notes | Note quality · Chapter outlines |
| Integrations | Webhooks · Email delivery |
| Product and API | Changelog · Product workflow · Plaud API · ADRs |
| Troubleshooting | Acceptance · Processing repair · Support |
See the contribution guide and Code of Conduct. Questions go to Discussions; vulnerabilities to the private security channel.
MIT © 2026 Sky Hong. localplaud is an independent project, not affiliated with or endorsed by Plaud.




