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
Metadata
Release files for speaksy 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| speaksy-0.1.1.tar.gz | 17.1 kB | Without provenance | Details for speaksy-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| speaksy-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for speaksy-0.1.1-py3-none-any.whl |
Total release size: 35.6 kB
Release files / speaksy-0.1.1.tar.gz
| Download URL | speaksy-0.1.1.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
076796807f091b772a88689e661502289009ee9fe26b7ff14ad762f3ccca1450
|
|
BLAKE2b-256 checksum How to use checksums |
c6297ddcbf9d62c0b304f82764861bd7dd00ec4a948d1f4cf54ee41dda9ebe9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / speaksy-0.1.1-py3-none-any.whl
| Download URL | speaksy-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c36dd6b9c1e2690313a7ecc299f1c47eddd0c4ffbf95e0abe0580f96a590d93
|
|
BLAKE2b-256 checksum How to use checksums |
8ade3cadf8c7e46f8c1d82ddfed798adb5d831ee03fab30256ff00ffecaff6ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Security for speaksy 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.