个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Local voice dictation for macOS. Hold Right Option, speak, and write in any app. SwiftUI + WhisperKit. Early public beta.
翻译准备中
正在加载完整 README。
查看完整 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.