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 directly from your microphone via sounddevice.
  • 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 audio input device and PortAudio runtime (for sounddevice)
  • Python 3.11+
  • OpenRouter API key

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.2.tar.gz (15.3 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.2-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sttui-0.1.2.tar.gz
  • Upload date:
  • Size: 15.3 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.2.tar.gz
Algorithm Hash digest
SHA256 d8c662ed6aacc83120be34bf7956132ae6979b2e32f041ebabaac5dbd439f277
MD5 71374890c8c6da939d8bd31a596f7fd0
BLAKE2b-256 526298ca92fcbdecdbe70785de1870ace42f33b40f6ec2a77b4958e7f8f15977

See more details on using hashes here.

Provenance

The following attestation bundles were made for sttui-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: sttui-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aee89460604484799861bf7741d38772fec0498e56602686bc2710c5d09e4357
MD5 e59c6eaea0a309265d504169ffcfda33
BLAKE2b-256 303daaaa42fd05d9e431c3f29325556598a6dc61477f153ca4cc687049fe0f5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sttui-0.1.2-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