Voice typing for Linux. Talk it. Type it. Ship it.
Project description
speaksy
talk it. type it. ship it.
Voice typing for Linux that actually works.
Hold a key, speak, release — your words appear wherever you're typing.
Demo
$ speaksy
╭────────────────────────────────────────╮
│ SPEAKSY │
│ talk it. type it. ship it. │
╰────────────────────────────────────────╯
Status: vibing
Hotkeys: Right Ctrl (hold) | F8 (toggle)
speaksy> _
Quick Start
# Install
pipx install speaksy
# Run (interactive setup on first launch)
speaksy
That's it. 30 seconds to voice typing.
Features
| Feature | Description | |
|---|---|---|
| Speed | < 1 second latency | Groq's Whisper API is blazing fast |
| Smart | AI text cleanup | Fixes grammar, removes "um", "uh", "like" |
| Free | No credit card | Groq's free tier is generous |
| Offline | Local fallback | Works without internet via faster-whisper |
| Private | Privacy mode | Keep voice 100% on your machine |
| Auto | Runs on login | Always ready when you are |
How It Works
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Hold Key │ -> │ Speak │ -> │ Release │ -> │ Text Appears│
│ (Right Ctrl) │ naturally │ │ key │ │ at cursor │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
|
v
┌─────────────────┐
│ Groq Whisper │
│ + LLM cleanup │
└─────────────────┘
- Press hotkey (Right Ctrl = hold, F8 = toggle)
- Speak naturally
- Release — text appears in < 1 second
Works everywhere: browser, terminal, IDE, Slack, Discord, anywhere you type.
Commands
Run speaksy to open the interactive CLI:
| Command | Description |
|---|---|
/setup |
Configure API key & hotkeys |
/start |
Start voice typing |
/stop |
Take a break |
/status |
Check the vibe |
/logs |
View receipts |
/config |
Tweak settings |
/help |
Get backup |
/quit |
Peace out |
Requirements
- OS: Linux (X11 or XWayland)
- Python: 3.10+
- API Key: Free from console.groq.com
System dependencies (auto-installed during setup):
sudo apt install xclip xdotool
Privacy Mode
By default, audio goes to Groq for fast transcription. Want to keep it local?
speaksy> /config
# Select "Privacy mode" -> "local"
Local mode uses faster-whisper on your CPU. Slower (~3-5s) but your voice never leaves your machine.
Troubleshooting
No audio input detected
- Check your mic is connected
- Run
arecord -lto list audio devices
Text not appearing
- Install dependencies:
sudo apt install xclip xdotool - Some pure Wayland apps may not work with xdotool
Service won't start
- Check logs: run
speaksythen/logs - Verify API key at console.groq.com
Uninstall
# Stop service
speaksy
# > /stop
# > /quit
# Remove package
pipx uninstall speaksy
# Remove config (optional)
rm -rf ~/.config/speaksy
rm ~/.config/systemd/user/speaksy.service
systemctl --user daemon-reload
Tech Stack
- STT: Groq Whisper API / faster-whisper
- LLM: Llama 3.1 8B (via Groq) for text cleanup
- Audio: sounddevice
- Hotkeys: pynput
- CLI: Rich
Contributing
PRs and issues welcome!
License
MIT - do whatever you want with it.
Built with caffeine and voice commands
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speaksy-0.1.0.tar.gz.
File metadata
- Download URL: speaksy-0.1.0.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
473167b2e7a851a79c963870c84d7f5f5830afbc1bdef881c8c41b9fcd57d16b
|
|
| MD5 |
d119b577418bf0710ce749cc334d5ba7
|
|
| BLAKE2b-256 |
2933a7168311b95889b0101ceb80fbc9fe9159647a79496ace8ed4d094683cc9
|
File details
Details for the file speaksy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: speaksy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e50489f9dd6d626ba2acd0af55b9addf3ef011344cae6aa3fbad01d0f24cded3
|
|
| MD5 |
4baf40d3a02380b97d3a0b54e4ba24fb
|
|
| BLAKE2b-256 |
c36836f36748f3f43830e0aa0ec45cbc91d6199982bbc9dd07aa8159d77dde4d
|