Metadata-Version: 2.4
Name: nanowhisper
Version: 1.0.0
Summary: Local voice dictation: Whisper STT + Claude LLM post-processing
License-Expression: MIT
Keywords: dictation,linux,speech-to-text,voice,whisper
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.10
Requires-Dist: anthropic>=0.40.0
Requires-Dist: evdev>=1.6.0
Requires-Dist: faster-whisper>=1.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: sounddevice>=0.4.6
Requires-Dist: tomli>=2.0; python_version < '3.11'
Description-Content-Type: text/markdown

# nanowhisper

Local voice dictation for Linux. Press a hotkey, speak, and your words appear as typed text in any application.

**Pipeline:** Microphone → Whisper (local STT) → Claude (optional cleanup) → typed into active window

## Install

Requires [uv](https://docs.astral.sh/uv/getting-started/installation/).

```bash
uv tool install nanowhisper
nanowhisper setup
```

The `setup` command handles everything: system packages, display server detection (X11/Wayland), keyboard permissions, config file, API key, and starts nanowhisper as a background service.

> After setup, **log out and back in** for keyboard access to take effect.

## Configure

Edit `~/.config/nanowhisper/config.toml` to change the hotkey, whisper model, output method, etc. The file is well-commented.

## Usage

nanowhisper runs as a systemd service after setup. Manage it with:

```bash
systemctl --user status nanowhisper     # check status
journalctl --user -u nanowhisper -f     # view logs
systemctl --user restart nanowhisper    # restart after config changes
systemctl --user stop nanowhisper       # stop
```

Or run manually in the foreground:

```bash
nanowhisper --preload
```

## Troubleshooting

| Problem | Fix |
|---|---|
| No keyboard found | `sudo usermod -aG input $USER`, then log out/in |
| Text not appearing | Check `[output] method` matches your display server |
| First dictation slow | Use `--preload` or the systemd service (does this by default) |
| Mic permission denied | `sudo usermod -aG audio $USER`, then log out/in |
| LLM not working | Check `ANTHROPIC_API_KEY` in `~/.config/nanowhisper/.env` |

## Uninstall

```bash
systemctl --user disable --now nanowhisper
uv tool uninstall nanowhisper
rm -rf ~/.config/nanowhisper ~/.config/systemd/user/nanowhisper.service
```
