Setup Guide
Get PulseScribe running on macOS or Windows in under 2 minutes. This guide covers installation, API key configuration, and your first dictation.
Download & Install
Download the latest release from GitHub.
sudo xattr -dr com.apple.quarantine /Applications/PulseScribe.app
open /Applications/PulseScribe.appGet an API Key
PulseScribe supports multiple transcription providers. We recommend starting with Deepgram for the best latency (~300ms via streaming).
| Provider | Latency | Free Tier | Sign Up |
|---|---|---|---|
| Deepgram | ~300ms | $200 credit | console.deepgram.com |
| Groq | ~1s | Free credits | console.groq.com |
| OpenAI | ~2-3s | Pay-as-you-go | platform.openai.com |
| Local Whisper | varies | Free (offline) | No signup needed |
Configure via Settings UI
Open Settings from the menu bar (macOS: 🎤 icon) or system tray (Windows: right-click). All settings can be configured here:
Alternative: Configure via .env file
# API Keys
DEEPGRAM_API_KEY=your_key_here
# Settings
PULSESCRIBE_MODE=deepgram
PULSESCRIBE_LANGUAGE=en
PULSESCRIBE_REFINE=trueGrant Permissions
PulseScribe needs permissions to work:
- 1.Microphone — Required for voice recording.
System Settings → Privacy & Security → Microphone → Enable PulseScribe - 2.Accessibility (for Auto-Paste) — Required to paste text automatically.
System Settings → Privacy & Security → Accessibility → Enable PulseScribe - 3.Input Monitoring (for Hold Mode) — Only needed if using Fn/Globe as hold-to-talk.
System Settings → Privacy & Security → Input Monitoring → Enable PulseScribe
Start Dictating
Press your hotkey and speak. On macOS, the default is Fn/Globe. On Windows, use Ctrl+Alt+R (toggle) or Ctrl+Win (hold).
Hold key → Speak → Release → Text is pasted
Press hotkey → Speak → Press again → Text is pasted
Hotkey Configuration
Customize your trigger key in Settings or via environment variables:
# Hold mode (Push-to-Talk) — recommended
PULSESCRIBE_HOLD_HOTKEY=fn
# Toggle mode (optional, in addition to hold)
PULSESCRIBE_TOGGLE_HOTKEY=f19
# Windows defaults
# PULSESCRIBE_TOGGLE_HOTKEY=ctrl+alt+r
# PULSESCRIBE_HOLD_HOTKEY=ctrl+winfn— Fn/Globe key (macOS, recommended for Hold mode)f19— F19 (remap CapsLock via Karabiner on macOS)ctrl+alt+r— Windows default togglectrl+win— Windows default holdcmd+shift+r— Custom combination
Visual Feedback
The overlay shows the current recording status with colors and animations:
Hotkey pressed, waiting for speech
Speech detected, recording active
Finalizing transcription
LLM post-processing active
Text pasted successfully
Something went wrong
Advanced Features
LLM Post-Processing (Refine)
Enable PULSESCRIBE_REFINE=true to automatically clean up transcriptions: remove filler words, correct grammar, and format into paragraphs.
Context Awareness
PulseScribe detects the active app and adjusts writing style:
| Context | Apps | Style |
|---|---|---|
| Mail, Outlook, Spark | Formal, complete sentences | |
| chat | Slack, Discord, Messages | Casual, short and concise |
| code | VS Code, Cursor, Terminal | Technical, preserve terms |
| default | All others | Standard correction |
Voice Commands
Speak formatting commands while dictating (requires Refine):
Custom Vocabulary
Improve recognition for domain-specific terms:
{
"keywords": ["Anthropic", "Claude", "Kubernetes", "OAuth"]
}Local Offline Mode
Run completely offline. On macOS (Apple Silicon), use Lightning for ~4x faster transcription. On Windows, use the Local installer with CUDA Whisper:
PULSESCRIBE_MODE=local
PULSESCRIBE_LOCAL_BACKEND=lightning # macOS: lightning, mlx, faster, whisper
PULSESCRIBE_LOCAL_MODEL=large
PULSESCRIBE_LANGUAGE=deRequires: pip install lightning-whisper-mlx
Troubleshooting
Grant Microphone permission in System Settings → Privacy & Security. On macOS, you may also need: brew install portaudio
Grant Accessibility permission. For unsigned builds, remove and re-add PulseScribe in Accessibility settings after each rebuild.
Switch to Deepgram (streaming) or Groq. For local mode, use MLX on macOS or CUDA on Windows.
Grant Input Monitoring permission in System Settings → Privacy & Security.
Check ~/.pulsescribe/startup.log (macOS) or %USERPROFILE%\.pulsescribe\logs\pulsescribe.log (Windows) for error details.
PySide6 is optional. The app falls back to Tkinter. To enable PySide6 overlay, reinstall with the full installer.
Ensure you installed the Local variant (~4GB). CUDA requires an NVIDIA GPU with drivers installed.
Some hotkeys may conflict with Windows shortcuts. Try a different combination like Ctrl+Alt+Space. Configure in Settings → Hotkeys.
CLI Usage (Advanced)
For developers or automation, PulseScribe also works as a CLI tool:
# Clone and install
git clone https://github.com/KLIEBHAN/pulsescribe.git
cd pulsescribe
pip install -r requirements.txt
# Record and copy to clipboard
python transcribe.py --record --copy --mode deepgram
# Transcribe a file
python transcribe.py audio.mp3 --mode openai
# Start the daemon manually
python pulsescribe_daemon.py --hotkey cmd+shift+r # macOS
python pulsescribe_windows.py --debug # WindowsReady to go?
Download PulseScribe and start dictating faster than you can type.