Native macOS voice dictation, transcription, context-aware prompting, 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-capable engines, applies optional enhancement prompts, understands the active app or website through Power Mode, and can paste the result directly at your cursor.
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 |
|---|---|---|
| 🎙️ Whisper | Speech-to-Text (dictation) | 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.
- On-device AI enhancement — clean up and reformat dictated text with the local Gemma model (no API key) or a cloud provider.
- Power Mode — adapt prompts based on the active app, website, or workflow.
- Local + cloud everywhere — Whisper/FluidAudio/Apple for STT; Kokoro for TTS; Gemma/Ollama for the LLM — plus cloud providers you explicitly configure.
- Personal dictionary, history, and audio-file transcription.
- Explicit macOS permissions flow for microphone, Accessibility, and screen context.
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 |
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.
