A voice input tool for macOS & Windows — trigger with a hotkey, speak, auto-paste.
- Global Hotkey — Default
Control+Spacefromconfig.yaml.example, supports custom key recording - Hotkey Modes — Supports both
toggle(press once to start, press again to finish) andhold(hold to speak, release to finish) - Real-time ASR — ByteDance Doubao streaming ASR via WebSocket
- Auto Paste — Automatically pastes recognized text into the focused input field
- Floating Overlay — Transparent overlay window showing real-time transcription
- Clipboard Options — Can keep the recognized text in the clipboard for manual re-paste
- Text Cleanup — Can automatically remove trailing
。/. - Auto Start — Optional launch at login from the settings page
- Hotwords — Custom hotwords to improve recognition accuracy for domain-specific terms
- Cross-platform — Supports both macOS and Windows
- Theme — Light / dark / system theme preference in settings
- Log in to the Volcengine Console, create an app, and select "Doubao Streaming ASR Model 2.0 (Hourly)"
- Open the model, select your app, and enable the model package. You'll see the APP ID, Access Token, and Secret Key below
- Enter the credentials in the settings page and click Save
Edit config.yaml in the project root and fill in your credentials:
| Field | Description |
|---|---|
app.hotkey |
Global hotkey. Default template value is Control+Space |
app.hotkey_mode |
Hotkey trigger mode: toggle or hold |
app.remove_trailing_period |
Remove trailing 。 / . from the final text |
app.keep_clipboard |
Keep the result in the clipboard after paste |
app.theme |
Theme preference: dark / light / system |
connection.app_id |
Volcengine App ID |
connection.access_token |
Volcengine Access Token |
connection.secret_key |
Volcengine Secret Key |
connection.resource_id |
ASR Resource ID |
request.context_hotwords |
Custom hotwords list |
Get your credentials from Volcengine Voice Service.
Note: packaged builds ship config.yaml.example as the default config template, so the effective default hotkey is Control+Space. The code-level fallback F13 is only used when app.hotkey is missing.
VoicePaste requires Microphone and Accessibility permissions to function properly.
Microphone Permission
- Settings page → System Permissions → Click "Request Permission"
- System Settings → Privacy & Security → Microphone, make sure VoicePaste is authorized
- If previously denied, reset via Terminal and re-authorize:
tccutil reset Microphone com.yolanda.voicepasteAccessibility Permission
- System Settings → Privacy & Security → Accessibility, make sure VoicePaste is authorized
- If reinstalled after deletion, you need to add it again
The non-stream (second-pass) recognition mode does not currently support hotword libraries or injected hotwords — only correction tables are supported. Create a correction table in the Volcengine console and replace boosting_table_id with correct_table_id in your config.




