Lattice
A workspace for your research.
A small Mac app for turning thoughts into text. Local transcription. No account. Open source.
ProductivitySwift · HTMLGitHub @dhirajcdryOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Local voice dictation for macOS. Hold Right Option, speak, and write in any app. SwiftUI + WhisperKit. Early public beta.
Loading the full README.
Read the full README ↗You already have somewhere to write. justwisper gives you another way to get the words there.
Focus a text field, hold Right ⌥, and talk. A small floating bar follows along. Release the key and the final transcript is inserted into the app you were using. Double-tap for hands-free dictation.
Speech recognition runs on your Mac using WhisperKit and Core ML. There’s no account, subscription, or app telemetry. Models and tokenizer files download during setup; once cached, dictation works offline.
Illustrated walkthrough with sample content, not a recording-speed benchmark. Download the short MP4.
| Teach it your words | Expand the things you say often |
|---|---|
| Galley — compact | Column — room to think |
|---|---|
Ticker and Caption (just the floating words, no bar) are also available in Settings. All four styles can be repositioned.
These images render the real SwiftUI views with fictional data. No personal dictation history is included. How the assets are made.
If the supported first-launch flow doesn’t work, see Troubleshooting. Release assets include a SHA-256 checksum so you can verify the downloaded file.
| Action | Shortcut |
|---|---|
| Push-to-talk | Hold Right ⌥; release to finish |
| Hands-free | Quickly double-tap Right ⌥; tap once to finish |
| Cancel | Esc or the overlay’s × |
| Recover a cancelled take | Undo during the brief recovery window |
| Move the overlay | Drag it |
| Reset overlay position | Double-click the overlay, or reset it in Settings |
The trigger is the right-hand Option key, not the right mouse button. Keep the app running in the menu bar to keep the model in memory.
| Model | Language | Best starting point for |
|---|---|---|
| Tiny | English | The smallest model and lighter inference work |
| Base | English | Everyday dictation |
| Small · default | English | Trying a larger English model when Base misses words |
| Turbo | Multilingual | Dictating in languages beyond English |
Model download sizes and speed vary by variant. The app shows an estimated size before selection. Your selection survives relaunches. A full quit unloads the model from memory; reopening loads the cached files again.
Audio is captured in memory and processed locally. The app does not intentionally save audio recordings to disk. Completed transcript history, vocabulary, snippets, and per-app formatting rules are stored under ~/Library/Application Support/Wispr/.
Insertion first uses macOS Accessibility. A clipboard-based paste is the fallback, so clipboard managers may see that text. The destination app controls what happens to text after insertion. Current builds log word counts and timings rather than transcript text. Older logs can contain transcripts; review diagnostics before sharing.
Read the storage and network details →
This is an early release, not a promise of perfect recognition. Accuracy depends on the model, language, microphone, and background noise. Apple Silicon is the supported release target; Intel builds are not part of the tested distribution.
Some apps and secure text fields block automatic insertion. Copy the completed transcript from History if needed. The interface’s live preview shows recent audio; the final transcript includes the complete take. Apple Intelligence polish requires a compatible Mac and an available system model.
Found a rough edge? Report it with your Mac, macOS version, app version, and reproduction steps. Please remove personal transcript text from logs.
git clone https://github.com/dhirajcdry/justwisper.git
cd justwisper
./setup-signing.sh # once per Mac
./build.sh
open /Applications/justwisper.app
./build.sh signs and replaces /Applications/justwisper.app. It stops any running copy before installation and leaves no app bundle in the project folder. Local builds reuse the justwisper Local signing identity. Its generated keychain password stays in ignored, owner-only .signing/ storage, so future builds unlock it automatically. Installed builds refuse ad-hoc signing to prevent permission resets.
Building requires Swift 6.2+ (Xcode 26+) because of the locked dependencies; running the app still targets macOS 14+. Run ./setup-signing.sh once to configure stable local signing, then use ./build.sh for updates. This creates a local development identity; it is not Apple Developer ID signing or notarization.
swift test # regression suite; no microphone required
./package.sh # Apple Silicon DMG in dist/
The real-model smoke test and screenshot renderer are opt-in. See Contributing, asset generation, and the release guide.
The app is native SwiftUI, with a small set of focused components:
Right Option → gesture state → mic capture → WhisperKit → cleanup → text insertion
│ │
live preview local history
Start with AppModel.swift for orchestration, HotkeyMonitor.swift for gestures, and WhisperEngine.swift for the local inference pipeline.
For help, see Support. For planned work, see the Roadmap. Please follow our community conduct.
Contributions that make the everyday dictation loop more reliable are especially welcome. The contributor guide explains how to build, test, and send a change.
Built by Dhiraj Chaudhary. App code is MIT licensed; dependencies, models, and fonts retain their own licenses. Third-party notices.
justwisper is an independent project inspired by push-to-talk dictation. It is not affiliated with Wispr Flow, Apple, or OpenAI.