When run via `bash <(curl ...)`, bash reads the script incrementally from a process substitution fd. If a `read < /dev/tty` call disrupts the fd state, bash can lose its place and the remaining script lines get fed to the interactive shell prompt as individual commands. Wrapping everything in main() forces bash to parse the entire script into memory before executing any of it — the standard fix for curl-piped scripts. Also changed README one-liner to download-then-execute pattern (curl -o /tmp/... && bash /tmp/...) as a belt-and-suspenders approach. https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
115 lines
4.2 KiB
Markdown
115 lines
4.2 KiB
Markdown
# OpenWhispr Easy Setup
|
|
|
|
[](LICENSE)
|
|
[](https://github.com/outis1one/openwhispr-easy-setup/actions/workflows/lint.yml)
|
|
|
|
**One-command installer for [OpenWhispr](https://github.com/OpenWhispr/openwhispr) on Linux** — distro detection, dependencies, API keys, first-run setup.
|
|
|
|
> *Your voice stays on your machine. Always. The only question is whether you want AI to clean up the text after transcription.*
|
|
|
|
## Quick install
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/outis1one/openwhispr-easy-setup/main/setup-openwhispr.sh -o /tmp/setup-openwhispr.sh && bash /tmp/setup-openwhispr.sh
|
|
```
|
|
|
|
Or clone and run:
|
|
|
|
```bash
|
|
git clone https://github.com/outis1one/openwhispr-easy-setup.git
|
|
cd openwhispr-easy-setup
|
|
bash setup-openwhispr.sh
|
|
```
|
|
|
|
## What it does
|
|
|
|
| Step | Action | Details |
|
|
|------|--------|---------|
|
|
| 1/8 | **Intro** | Explains OpenWhispr and the privacy model |
|
|
| 2/8 | **Detect distro + arch** | Ubuntu, Debian, Mint, Fedora, openSUSE, Arch — amd64/arm64 |
|
|
| 3/8 | **Install OpenWhispr** | Fetches latest release from GitHub, picks correct package |
|
|
| 4/8 | **Paste dependencies** | xdotool (X11), wtype (Wayland), kdotool (KDE), or D-Bus (GNOME) |
|
|
| 5/8 | **STT provider** | Local Whisper/Parakeet, Groq, or OpenAI Realtime |
|
|
| 6/8 | **AI cleanup** | OpenAI, Anthropic, Groq, Ollama, or skip |
|
|
| 7/8 | **First launch** | Opens OpenWhispr for model download and hotkey setup |
|
|
| 8/8 | **Summary** | Prints config, useful commands, and next steps |
|
|
|
|
## STT options
|
|
|
|
| Option | Method | Streaming | Cost | Audio sent to |
|
|
|--------|--------|-----------|------|---------------|
|
|
| 1 (default) | Local Whisper/Parakeet | No | Free | Nobody, ever |
|
|
| 2 | Groq whisper-large-v3-turbo | No | $0.04/hr* | Groq servers |
|
|
| 3 | OpenAI Realtime API | Yes | $0.06/min | OpenAI servers |
|
|
|
|
\*Groq free tier: ~2,000 audio seconds/day.
|
|
|
|
## AI cleanup options
|
|
|
|
| Provider | Model | Per use | 50/day/mo | 200/day/mo |
|
|
|----------|-------|---------|-----------|------------|
|
|
| OpenAI | gpt-4o-mini-2024-07-18 | $0.000058 | $0.09 | $0.35 |
|
|
| Anthropic | claude-haiku-4-5 | $0.000450 | $0.68 | $2.70 |
|
|
| Groq | llama-3.3-70b-versatile | Free* | Free* | Free* |
|
|
| Ollama | Local (fully offline) | Free | Free | Free |
|
|
| Skip | Raw transcription only | Free | Free | Free |
|
|
|
|
\*Groq free: 1,000 req/day, 100K tokens/day.
|
|
|
|
## Privacy
|
|
|
|
| Data | Where it goes | Condition |
|
|
|------|---------------|-----------|
|
|
| **Audio** | Stays on your machine | Default (local Whisper/Parakeet) |
|
|
| **Audio** | Groq or OpenAI servers | Only if you choose cloud STT |
|
|
| **Text** | AI cleanup provider | Only if you choose AI cleanup |
|
|
| **API keys** | `~/.bashrc` on your machine | Never sent anywhere by this script |
|
|
|
|
No provider uses your data for training. Cloud data is deleted within 30 days.
|
|
|
|
## Useful commands
|
|
|
|
```bash
|
|
openwhispr # Launch the app
|
|
openwhispr --help # Show options
|
|
source ~/.bashrc # Reload API keys in current shell
|
|
```
|
|
|
|
In the app:
|
|
- **Settings → Hotkey** — change your hotkey (default: backtick `` ` ``)
|
|
- **Settings → Models** — download better speech models
|
|
- **Settings → Processing** — change STT or AI provider
|
|
|
|
## Supported distros
|
|
|
|
| Distro | Package format | Status |
|
|
|--------|---------------|--------|
|
|
| Ubuntu / Debian / Mint | `.deb` | Supported |
|
|
| Fedora | `.rpm` (dnf) | Supported |
|
|
| openSUSE | `.rpm` (zypper) | Supported |
|
|
| Arch / Manjaro / EndeavourOS | `.tar.gz` | Supported |
|
|
|
|
Architecture: `x86_64` (amd64) and `aarch64` (arm64).
|
|
|
|
## Requirements
|
|
|
|
- **bash 4+**
|
|
- **curl** — for downloading
|
|
- **jq** — for parsing GitHub API (script offers to install if missing)
|
|
|
|
## Safe to re-run
|
|
|
|
The script is idempotent:
|
|
- Skips OpenWhispr install if the latest version is already present
|
|
- Never overwrites existing API keys in `~/.bashrc`
|
|
- Detects already-installed paste dependencies
|
|
|
|
## Troubleshooting
|
|
|
|
- [OpenWhispr Troubleshooting Guide](https://github.com/OpenWhispr/openwhispr/blob/main/TROUBLESHOOTING.md)
|
|
- [Open an issue](https://github.com/outis1one/openwhispr-easy-setup/issues/new/choose)
|
|
|
|
## License
|
|
|
|
[MIT](LICENSE)
|