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

Uploaded Python 3

File details

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

File metadata

  • Download URL: sttui-0.1.4.tar.gz
  • Upload date:
  • Size: 16.4 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.4.tar.gz
Algorithm Hash digest
SHA256 a6dcfc8c930715bff3a83743ebc5d89f3926c6d0547eaf860d6af05081e345c2
MD5 8f3116c693070e3e21e57885fe8ae919
BLAKE2b-256 a7a72ddd82228c4bc5e10974590a4826a5375df3e630711c2eb144465301affc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: sttui-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 16.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b99c1f9e4894ff3e23371bf3081d1c791fc1ab2a66f3976ca316e29c5cee9dda
MD5 e92ef825ad2d43187538b83b731e0790
BLAKE2b-256 db69f8a8a684d56bf2398d41676a6b44166636b2df9d5968df373e6a381a9055

See more details on using hashes here.

Provenance

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