A lightweight macOS menu-bar app for voice input. Hold a trigger key to record, release to transcribe and inject text into any focused input field.
brew tap thinkany-ai/tap
brew install typeanyThen launch:
open $(brew --prefix)/opt/typeany/TypeAny.app
# or symlink to Applications:
ln -sf $(brew --prefix)/opt/typeany/TypeAny.app /Applications/TypeAny.app/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/thinkany-ai/typeany/main/install.sh)"Both methods require macOS 14+ and Xcode Command Line Tools (
xcode-select --install)
- Customizable trigger key — Right Option ⌥ (recommended), Fn, Right ⌘/⌃, Caps Lock, F5/F6, or any custom combo
- Streaming ASR — real-time transcription via Apple Speech (default: zh-CN)
- Multi-engine ASR — choose from 3 engines in Settings:
- 🍎 Apple ASR (free, real-time, online)
- 🖥️ Local Whisper (free, offline,
brew install whisper-cpp) - ☁️ Whisper API (OpenAI-compatible, best accuracy)
- Elegant capsule HUD — floating waveform panel driven by real-time audio RMS
- VAD auto-stop — silence detection stops recording after 1.5s pause
- Hot words — custom correction pairs (e.g. 配森 → Python)
- LLM refinement — conservative error correction via OpenAI-compatible API
- History — last 10 injections, re-inject with one click
- CJK-aware injection — auto-switches to ABC keyboard before paste, restores after
- LSUIElement — menu bar only, no Dock icon
git clone https://github.com/thinkany-ai/typeany.git
cd typeany
make build # compile and create .app bundle
make run # build and launch
make install # install to /Applications
make clean # clean build artifactsClick the menu bar icon to access:
| Setting | Description |
|---|---|
| Trigger Key | Choose or record a custom hotkey (Right ⌥ recommended if Fn is taken by WeChat) |
| Language | English / 简体中文 / 繁體中文 / 日本語 / 한국어 |
| ASR Engine | Apple ASR / Local Whisper / Whisper API |
| Auto Stop (VAD) | Toggle silence-based auto-stop |
| Hot Words | Custom corrections dictionary |
| LLM Refinement | Configure API for smarter corrections |
| Recent History | Re-inject previous transcriptions |
- Microphone — for recording
- Speech Recognition — for transcription
- Accessibility — for hotkey monitoring and text injection
Sources/TypeAny/
├── App/ # Entry point, AppDelegate, AppState
├── Audio/ # AVAudioEngine recording + RMS levels
├── HotKey/ # HotkeyMonitor (customizable trigger keys)
├── LLM/ # OpenAI-compatible refinement client
├── MenuBar/ # Status bar controller
├── Preferences/ # UserDefaults, language, hot words
├── Speech/ # ASR engines (Apple / Whisper Local / Whisper API)
├── TextInjection/ # Clipboard + Cmd+V injection
├── UI/ # Floating panel, waveform, settings windows
└── Utilities/ # Constants, permissions
MIT