talk
macOS only (Apple Silicon recommended). Requires Python 3.11+.
Local-first dictation for macOS. Press a hotkey, talk, text appears at your cursor.
- Parakeet local transcription by default (zero API cost on Apple Silicon).
- OpenAI
gpt-4o-transcribefallback with one env switch. - Automatic paste at cursor (clipboard-safe restore).
Install
pip install talktype
That's it. On first run, Parakeet model weights (~1.2 GB) download automatically.
Alternative: from source
git clone https://github.com/strangeloopcanon/talk.git
cd talk
./scripts/install_macos.sh
./scripts/doctor_macos.sh
./scripts/run_macos.sh
Usage
talk run
- Press
Ctrl+Option+Dto start recording. - Press
Ctrl+Option+Dagain to stop, transcribe, and paste. - Press
Ctrl+Option+Qto quit.
Preflight checks
talk doctor
File transcription
talk transcribe-file /path/to/sample.wav
macOS permissions
You must grant your terminal app:
- Microphone -- for audio recording
- Accessibility -- for paste keystroke automation
- Input Monitoring -- for global hotkeys
If paste fails but transcription works, Accessibility permission is usually the issue.
Configuration
Works out of the box with zero configuration. To customize, create ~/.config/talk/.env:
mkdir -p ~/.config/talk
Key options (all have sensible defaults):
| Variable | Default | Notes |
|---|---|---|
DICTATE_BACKEND |
parakeet |
parakeet (local) or openai (cloud) |
DICTATE_HOTKEY |
<ctrl>+<alt>+d |
Toggle recording |
DICTATE_QUIT_HOTKEY |
<ctrl>+<alt>+q |
Quit the app |
DICTATE_AUTOPASTE |
true |
Paste transcription at cursor |
PARAKEET_MODEL |
mlx-community/parakeet-tdt-0.6b-v3 |
Local model |
OPENAI_API_KEY |
(empty) | Required if backend=openai |
See .env.example for the full list.
Switching backend
# In ~/.config/talk/.env or as env vars:
DICTATE_BACKEND=openai
OPENAI_API_KEY=sk-...
Cleanup
Parakeet model weights are cached in ~/.cache/huggingface/hub/. To reclaim disk space:
rm -rf ~/.cache/huggingface/hub/models--mlx-community--parakeet-tdt-0.6b-v3
Metadata
Release files for talktype 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| talktype-0.2.0.tar.gz | 271.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| talktype-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 285.4 kB
Release files / talktype-0.2.0.tar.gz
| Download URL | talktype-0.2.0.tar.gz |
|---|---|
| Size | 271.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c86d079ccf87fe8048f4863370e290893c26a7162dc4d79655047094a14008ad
|
|
BLAKE2b-256 checksum How to use checksums |
67a85016d05d496f3c50e3097562b7a21df13dad16f3ffe4f86e08a03ffa14eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|
Release files / talktype-0.2.0-py3-none-any.whl
| Download URL | talktype-0.2.0-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffb6a552cf2117005b616e92b51119c6f3970e3b888fd1b8cfa94b91b3845402
|
|
BLAKE2b-256 checksum How to use checksums |
02cdd161aeac2f8b67e9ff6266eb0cf2a13a831d3b6554e8ff936068c42d364e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|