Speak instead of typing! This tool converts your voice to text and types it wherever your cursor is.
STT Prompt (Speech-to-Text Prompt) is a simple tool that lets you use your voice to type text anywhere on your computer. Just press a hotkey, speak, and your words appear as text.
- AI Chatbots - Dictate prompts to ChatGPT, Claude, Gemini, or any AI assistant
- Messaging Apps - Send voice-to-text messages on WhatsApp, Telegram, Discord, Slack
- Social Media - Compose posts on X (Twitter), Facebook, LinkedIn
- Emails - Write emails in Gmail, Outlook, or any email client
- Documents - Dictate into Word, Google Docs, Notion, or any text editor
- Anywhere - Works in any app where you can type text
- Place your cursor in any text input field (chat box, search bar, document, etc.)
- Press Ctrl+Shift+R to start recording
- Speak naturally
- Press Ctrl+Shift+R again to stop
- Your speech is converted to text and typed automatically at the cursor
That's it! No copy-pasting needed - text appears right where you're typing.
- Works Everywhere - Any app, any text field, just place your cursor and speak
- Simple Toggle - Same hotkey (Ctrl+Shift+R) to start and stop recording
- Cross-Platform - Windows, macOS, and Linux (GNOME, KDE, XFCE)
- Background Service - Runs silently, always ready when you need it
- Fast & Accurate - Uses ChatGPT's Whisper speech recognition
- Python 3.9+ installed on your computer
- ChatGPT account (free or paid) - for speech recognition
- Microphone - built-in or external
Windows:
pip install stt-promptmacOS:
pip3 install stt-promptLinux (Ubuntu/Debian):
sudo apt install python3 python3-pip libportaudio2 xclip
pip3 install stt-promptOther Linux distributions
Fedora:
sudo dnf install python3 python3-pip portaudio xclip
pip3 install stt-promptArch:
sudo pacman -S python python-pip portaudio xclip
pip3 install stt-promptchatgpt-authThis opens ChatGPT in your browser. Follow the on-screen instructions to copy your access token.
Note: Tokens expire after ~10 days. Run
chatgpt-authagain when needed.
dictate-hotkey-installDone! Now press Ctrl+Shift+R anywhere to start STT Prompt.
- Hotkey service runs in background and starts automatically on login
- No additional setup needed
- Creates an Automator Quick Action
- Grant these permissions when prompted:
- System Settings > Privacy & Security > Accessibility
- System Settings > Privacy & Security > Microphone
- Auto-detects your desktop environment (GNOME, KDE, XFCE)
- X11 only - Hotkey detection (
pynput) does not work on Wayland. Use X11 or XWayland. - System tray may require extra packages:
sudo apt install python3-gi gir1.2-appindicator3-0.1 # Ubuntu/Debian - Other desktops: Falls back to xbindkeys (install:
apt install xbindkeys)
The tool uses ChatGPT's speech-to-text service. You need to provide your ChatGPT access token (one-time setup).
How to get your token:
- Run
chatgpt-auth- it opens https://chatgpt.com - Make sure you're logged in to ChatGPT
- Press
F12to open Developer Tools - Click the Console tab
- Paste this code and press Enter:
fetch('https://chatgpt.com/api/auth/session').then(r=>r.json()).then(d=>console.log(JSON.stringify({accessToken:d.accessToken,email:d.user?.email,expires:d.expires})))
- Copy the JSON output that appears
- Paste it in the terminal where
chatgpt-authis waiting
Token expires after ~10 days. When you see "Token expired" error, just run chatgpt-auth again.
| Command | Description |
|---|---|
dictate-hotkey-install |
Setup hotkey service |
dictate-hotkey-uninstall |
Remove hotkey service |
dictate-hotkey-status |
Check if hotkey is configured |
chatgpt-auth |
Authorize with ChatGPT |
chatgpt-auth-status |
Check authorization status |
chatgpt-auth-delete |
Delete authorization / logout |
If dictate or chatgpt-auth commands are not found, pip installed them to a directory not in your PATH.
Quick Fix - Use python -m instead:
python -m voice_dictation.cli # instead of: dictate
python -m voice_dictation.cli --one-shot # one-shot modePermanent Fix - Add to PATH:
Linux/macOS
Add this line to your ~/.bashrc or ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"Then reload: source ~/.bashrc (or restart terminal)
Windows
- Find where pip installed scripts:
python -c "import sysconfig; print(sysconfig.get_path('scripts'))"
- Add that path to your system PATH environment variable
| Problem | Solution |
|---|---|
| Hotkey not working (Windows) | Re-run dictate-hotkey-install |
| Hotkey not working (macOS) | Grant Accessibility permission in System Settings |
| Hotkey not working (Linux) | Run sudo usermod -aG input $USER, then log out and back in |
| Text not pasting (Linux) | Install clipboard tool: sudo apt install xclip |
| Text not pasting (Wayland) | Install: sudo apt install wl-clipboard |
| Hotkey not detected (Wayland) | pynput requires X11. Switch to X11 session or use XWayland |
| No system tray icon (Linux) | Install: sudo apt install python3-gi gir1.2-appindicator3-0.1 |
| "Authorization required" | Run chatgpt-auth to set up your token |
| "Token expired" | Run chatgpt-auth again (tokens last ~10 days) |
| Microphone not working | Check your system microphone permissions |
dictate-hotkey-uninstall # Remove hotkey service
chatgpt-auth-delete # Remove authorization (optional)
pip uninstall stt-promptMIT
For Developers
git clone https://github.com/zunmax/stt-prompt.git
cd stt-prompt
pip install -e ".[dev]"stt-prompt/
├── pyproject.toml # Package configuration
├── requirements.txt # Dependencies
└── src/voice_dictation/
├── cli.py # CLI entry points
├── core.py # Dictation logic (recording, transcription)
├── config.py # Configuration management
├── hotkey_service.py # Windows hotkey listener
└── setup_autostart.py # Platform-specific setup
python -m build
twine check dist/*
twine upload dist/*