Native AI voice typing for macOS.
Hold Fn, speak naturally, and release. ChatterKey prepares polished text and inserts it into the app you are already using.
Download for macOS · Product website · Changelog
Important
ChatterKey is bring-your-own-key software. Audio and processing instructions go to Google Direct or OpenRouter, depending on your selected connection—there is no ChatterKey account, analytics SDK, or project-operated transcription proxy.
Use your own Gemini API key directly, without an OpenRouter account:
- Open Settings → AI Provider → Connection → Google Direct.
- Enter your Gemini API key from Google AI Studio in the Gemini API key field.
- Keep
gemini-3.5-flash-liteas the model, then Save. Test Connection checks API access; dictate a short clip to check audio-model access.
Requests use Google's fixed OpenAI-compatible endpoint through the existing Swift HTTP client—no extra SDK or second processing stage. Google keys stay in a separate Keychain account from OpenRouter keys. Model and cost-rate settings are retained separately when switching connections. Existing installations keep their working connection; new installs default to Google Direct.
This feature is not included in the published v4.5.0 download below. It is available in the unreleased source/local build (build 9). The v4.5.0 release notes describe that release's OpenRouter-only connection.
Gemini 3.5 Flash-Lite now handles dictation, translation, cleanup, verbatim, and Magic Voice Edit through one OpenRouter model request per attempt. No separate transcription/polishing stages, hidden repair calls, or automatic retries. Settings expose one editable audio-model ID, and the dashboard estimates audio and text tokens for that request.
- Improved selection detection for apps with limited Accessibility support.
- Voice edits send selected text and instruction audio together.
- Existing preferences and local history migrate; provider API keys are never transferred.
- Read the release announcement or full changelog.
Warning
The downloadable v4.5.0 app is an Apple Silicon (arm64) community-test build, ad-hoc signed and not Apple-notarized. It is not a Developer ID-signed production build. Requires macOS 14 or later. Review distribution limitations before installing.
| Regular dictation | ChatterKey |
|---|---|
| Returns a raw transcript | Produces polished, ready-to-use text |
| Uses a fixed service or model | Uses one configurable audio model, defaulting to Gemini 3.5 Flash-Lite via Google Direct in the current source build |
| Misspells names and technical terms | Learns exact spellings through personal vocabulary |
| Hides the writing instructions | Lets you edit and preview the AI system prompt |
| Requires separate billing checks | Estimates whole-process provider cost locally |
| Keeps features scattered | Unifies Dashboard, History, prompts, models, vocabulary, and snippets in Settings |
|
|
|
|
- Download the latest release and move
ChatterKey.appto Applications. - Connect your provider with its own API key: Google Direct in the current source/local build, or OpenRouter in v4.5.0.
- Allow permissions for Microphone and Accessibility. Speech Recognition is optional for live preview.
- Hold your shortcut, speak, then release to process and insert the result.
Tip
Start with Translate to English for multilingual speech, Professional for workplace writing, or Technical when dictating developer content.
flowchart TD
A["Hold shortcut and record audio"] --> B["Release shortcut"]
B --> C["One request to Google Direct or OpenRouter: audio + instructions + selected text when editing"]
C --> D["Gemini 3.5 Flash-Lite: one configurable audio model"]
D --> E["Final text"]
E --> F["Local formatting for non-verbatim dictation"]
F --> G["Insert into the focused app"]
C --> H["Failure: show error, no automatic retry"]
H --> I["User chooses Retry"]
I --> C
- SwiftUI coordinates the menu-bar app, Settings, Dashboard, History, and floating status UI.
- AVFoundation captures a temporary WAV recording while optional on-device Speech provides the rough live preview.
- One audio-capable model receives the recording and instructions in a single request to the selected connection. For Magic Voice Edit, the selected text is included in that same request. There is no separate transcription, polishing, or English-repair call.
- ChatterKey applies local snippet and formatting rules for non-verbatim dictation, then inserts the final result. Voice edits and verbatim output bypass those local transformations.
Failures are shown to the user; ChatterKey does not automatically retry or fall back to another model. The explicit Retry button starts a new attempt. The optional on-device live preview is not an additional cloud request.
| Data | What happens |
|---|---|
| API keys | Stored in macOS Keychain |
| Audio | Sent directly to the configured provider and deleted after successful processing or cancellation |
| Magic Voice Edit selection | Sent only when you explicitly use the feature |
| Dashboard records | Aggregate metadata stays local; transcript text and audio are not stored there |
| Transcript history | Optional, local, retention-controlled, and disabled by default |
| Cost display | Local whole-process estimate; the provider invoice remains the final source of truth |
Read the complete Privacy Policy and Security Policy.
Detailed changes stay in CHANGELOG.md. Use these links for release notes and downloads.
| Version | Released | Links |
|---|---|---|
v4.5.0 |
September 8, 2026 | Release notes · Detailed changes |
v0.4.0 |
August 25, 2026 | Release notes · Detailed changes |
v0.3.1 |
August 25, 2026 | Release notes · Detailed changes |
v0.3.0 |
August 25, 2026 | Release notes · Detailed changes |
v0.2.4 |
August 24, 2026 | Release notes · Detailed changes |
v0.2.1 |
August 24, 2026 | Release notes · Detailed changes |
v0.2.0 |
August 24, 2026 | Release notes · Detailed changes |
v0.1.0 |
August 24, 2026 | Release notes · Detailed changes |
Build from source
- macOS 14 or later
- Swift 6 toolchain
- Microphone and Accessibility permissions
- Optional Speech Recognition permission for live preview
- A Gemini API key for Google Direct, or an OpenRouter API key for OpenRouter
swift build
./Scripts/package-app.sh
rm -rf /Applications/ChatterKey.app
ditto dist/ChatterKey.app /Applications/ChatterKey.app
open /Applications/ChatterKey.appThe development package is ad-hoc signed. Review DISTRIBUTION.md before publishing binaries.
Default provider configuration
Model availability and pricing change over time, so every model ID and cost-estimation rate remains editable in Settings.
- Connections: Google Direct (new-install default) and OpenRouter. Each uses its fixed official API host and its own Keychain account.
- Audio model:
gemini-3.5-flash-liteon Google Direct;google/gemini-3.5-flash-liteon OpenRouter. Both use one model for all writing modes and voice edits. - Replace the single model ID in Settings when adopting another audio-input/text-output model. Update its rates at the same time.
- Gemini 3.5 Flash-Lite standard estimates: $0.30/M audio input tokens, $0.30/M text input tokens, $2.50/M output tokens (checked September 7, 2026).
- Cost estimates use 32 audio tokens/second and approximate text tokens. Selected text is counted for edits; the on-device rough transcript is not billed as another text input. Extra reasoning, retries, failed calls, taxes, and fees are not included.
- Legacy settings migrate to the single-model schema. Existing OpenRouter Gemini selections and local history remain available. Unsupported legacy OpenAI/custom setups retain the v4.5 OpenRouter migration path; keys are never copied between providers.
Repository safety
Build output, packaged apps, environment files, certificates, provisioning profiles, local agent files, and common secret files are excluded by .gitignore.
Before a public push, run:
./Scripts/check-public.sh
git status --shortNever include API keys, private audio, or transcripts in an issue or pull request.
Bug reports, feature ideas, documentation improvements, and focused pull requests are welcome. Please include reproducible steps without sharing sensitive content.
MIT — see LICENSE.

