Skip to main content

Linux-first speech-to-text terminal UI

Project description

sttui

No browser. No Web UI. Just fast speech-to-text in your terminal.

Features

  • Records audio with pw-record.
  • Shows an interactive Textual TUI with record/transcribe states.
  • Sends WAV audio to OpenRouter as input_audio.
  • Saves .wav and .txt outputs in a timestamped naming scheme.
  • Supports --stdout mode for script-friendly output.

Requirements

  • Linux with PipeWire (pw-record)
  • Python 3.11+
  • OpenRouter API key
  • Optional clipboard tools: wl-copy or xclip

Install

# Recommended: isolated install for CLI tools
pipx install sttui

# Verify install
sttui --help

Alternative with pip:

python -m pip install --user sttui
sttui --help

Config

Create ~/.config/sttui/config.toml:

[openrouter]
api_key = "or-..."

[transcription]
model = "google/gemini-2.5-flash"
prompt = "Please transcribe this audio file."
max_seconds = 600

Commands

# Show CLI help
uv run sttui --help

# Start interactive dictation TUI
uv run sttui

# TUI + write transcript to stdout on Enter
uv run sttui --stdout

# Override model and recording cap for this run
uv run sttui --model google/gemini-2.5-flash --max-seconds 120

# Use a custom config file
uv run sttui --config ~/.config/sttui/config.toml

Keybindings:

  • space / r: toggle record/stop
  • s: stop recording
  • c: copy transcript
  • Enter: new cycle (or stdout confirm in --stdout mode)
  • q: quit

CLI flags:

  • --stdout
  • --model <name>
  • --max-seconds <int>
  • --debug
  • --config <path>

By default, recordings are stored in ~/.local/share/sttui/recordings/.

Development

uv sync
uv run sttui --help
uv run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sttui-0.1.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sttui-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file sttui-0.1.0.tar.gz.

File metadata

  • Download URL: sttui-0.1.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sttui-0.1.0.tar.gz
Algorithm Hash digest
SHA256 56895382403777cddb2b87dbf93759f0d9c0be53f5e881d41c2ad158bfdfa7cb
MD5 a58ff647745c3624b76b72bf94c2eb0c
BLAKE2b-256 f9d44c662a3909f954c2660f70317ef1fcdb54439a9147e9670743451f3dbb6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sttui-0.1.0.tar.gz:

Publisher: publish.yaml on rambip/sttui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sttui-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sttui-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sttui-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b1d3e0055c9277d6c0ae17e112f98b1e8f1fb01b6b0e2910a781a89acbb2e9a
MD5 c2f9ec4700f4452d13ad1fd529fc5b76
BLAKE2b-256 b87808d14a3b36582a04874888568193db16488d32407408c03265c02d1b5544

See more details on using hashes here.

Provenance

The following attestation bundles were made for sttui-0.1.0-py3-none-any.whl:

Publisher: publish.yaml on rambip/sttui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page