Native macOS voice dictation, file transcription with speaker identification, read aloud, and auto-paste.
Zerm is a native macOS application for turning speech into clean text quickly. It records from your microphone, transcribes with local and cloud engines, applies optional enhancement prompts, adapts to the active app or website through Power Mode, and pastes the result directly at your cursor. It also transcribes audio and video files with each speaker identified, and reads selected text aloud.
Zerm is based on the open-source project VoiceInk by Beingpax. VoiceInk provided the foundation for the native macOS app architecture, dictation workflow, transcription pipeline, Power Mode concept, model management, and many supporting services.
This repository is not trying to hide that lineage. Zerm is a modified GPLv3 derivative adapted for Arcusis branding, product direction, and ongoing development. We keep the GPLv3 license, preserve attribution, and link back to the upstream project so users and contributors can inspect the original work.
Additional attribution details are kept in NOTICE.
- Attribution
- Features
- Install
- Requirements
- Build From Source
- Project Structure
- Privacy
- Contributing
- License
Zerm is built around three on-device AI models the app downloads and manages for you — speech-to-text, text-to-speech, and a small agentic LLM — so the core experience is fast, private, and works offline. Cloud providers remain available for every task as an option.
| Model | Job | Engine |
|---|---|---|
| 🎙️ Parakeet / Whisper | Speech-to-Text (dictation, file transcription) | FluidAudio / whisper.cpp |
| 🔊 Kokoro | Text-to-Speech (Read Aloud) | sherpa-onnx |
| 🧠 Gemma | Agentic layer (smart reading + enhancement) | llama.cpp |
- Fast dictation workflow — global shortcut, push-to-talk recording, auto-stop, and auto-paste at the cursor.
- Read Aloud — select text anywhere, press a shortcut, and Zerm reads it in a natural voice (local Kokoro or cloud).
- Smart Reading — text is cleaned (acronyms, URLs, code, emoji, tables) and optionally rewritten by the on-device LLM so it sounds human, not robotic.
- AI enhancement — one Output setting (Instant, Instant + Refine, or Enhanced) decides whether text is cleaned up by the local model (no API key) or a cloud provider; skipped or failed enhancements are reported, never silent.
- Transcribe File — drop in audio or video for a full transcript with speaker identification, renameable speakers, and TXT, Markdown, SRT, WebVTT, or JSON export.
- Power Mode — per-app and per-website model, language, output, prompt, and text settings that inherit your global settings unless you override them.
- Local + cloud everywhere — Parakeet, Whisper (including ivrit.ai Hebrew models), and Apple Speech locally, with hardware-based recommendations; eleven cloud speech providers; Kokoro for TTS; Gemma/Ollama for the LLM — plus cloud providers you explicitly configure.
- Personal dictionary, history, and a dashboard that follows the range you pick.
- English and Hebrew throughout the interface.
- Explicit macOS permissions flow for microphone, Accessibility, and screen context.
User documentation lives on the website.
See the project wiki for architecture and subsystem docs.
Download the latest macOS build from the Releases page or the project website.
Zerm is currently focused on macOS.
- macOS 14.4 or later
- Microphone permission
- Accessibility permission for auto-paste and global insertion workflows
- Screen Recording permission only when screen/context-aware features are enabled
The Xcode project lives at the repository root (Zerm.xcodeproj).
Prerequisites:
- Xcode 16 or newer
- macOS 14.4 or newer
- Swift Package Manager dependencies resolved by Xcode
Build from the command line:
xcodebuild \
-project Zerm.xcodeproj \
-scheme Zerm \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO \
buildOr use the Makefile to build, sign ad-hoc, and install to /Applications:
make installFor detailed local build notes, see BUILDING.md.
| Path | Purpose |
|---|---|
Zerm.xcodeproj |
Xcode project (app target, tests) |
Zerm/ |
Native Swift/SwiftUI macOS app source |
Zerm/Transcription/ |
Speech-to-text engines, providers, and processing pipeline |
Zerm/TextToSpeech/ |
Read Aloud (text-to-speech) — providers, player, Kokoro |
Zerm/LocalLLM/ |
On-device LLM (llama.cpp / Gemma) for smart reading & enhancement |
Zerm/PowerMode/ |
App, URL, and context-aware prompt selection |
Zerm/Views/ |
SwiftUI application interface |
Zerm/Services/ |
App services, settings, dictionaries, model management, and integrations |
Makefile |
Local build + ad-hoc install helpers |
docs/ |
GitHub Pages website (generated docs pages included) |
site-content/docs/ |
Markdown sources for the website documentation (make site regenerates) |
NOTICE |
Upstream attribution and derivative-work notes |
LICENSE |
GPLv3 license text |
Zerm is designed to make privacy boundaries explicit.
- Local transcription paths keep audio on the device.
- Cloud transcription and AI providers require user configuration before use.
- History and stored request payloads should be treated carefully because they may contain dictated text.
- Power Mode and screen-context features may require macOS permissions so Zerm can understand where the text is being inserted.
See Notebook/Zerm Runtime Privacy Model.md for project notes on runtime privacy behavior.
Issues and pull requests are welcome when they are aligned with the macOS app.
Before opening a PR:
- Keep changes focused and describe the user-facing behavior.
- Preserve GPLv3 attribution for VoiceInk-derived code.
- Add or update tests for high-risk behavior.
- Include screenshots or short recordings for UI changes.
- Note any macOS permissions or signing behavior that could affect testing.
Zerm is licensed under the GNU General Public License v3.0.
Because Zerm is derived from VoiceInk, the GPLv3 license and upstream attribution are part of the public project identity. See NOTICE for source attribution and modification notes.
Built by Arcusis, based on VoiceInk by Beingpax.
