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
.wavand.txtoutputs in a timestamped naming scheme. - Supports
--stdoutmode 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/stops: stop recordingc: copy transcriptEnter: new cycle (or stdout confirm in--stdoutmode)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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sttui-0.1.1.tar.gz.
File metadata
- Download URL: sttui-0.1.1.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd33d53c1741047a8e91fc8e4acf2740094bf98a6f2a9fc1e7a0a1251b86fb4a
|
|
| MD5 |
893dce951a0f8475c27507e7feb22981
|
|
| BLAKE2b-256 |
4324c52ddbb1ed183b9c6838db38a67e8f75384350ec428f35967a455e274866
|
Provenance
The following attestation bundles were made for sttui-0.1.1.tar.gz:
Publisher:
publish.yaml on rambip/sttui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sttui-0.1.1.tar.gz -
Subject digest:
dd33d53c1741047a8e91fc8e4acf2740094bf98a6f2a9fc1e7a0a1251b86fb4a - Sigstore transparency entry: 1102018194
- Sigstore integration time:
-
Permalink:
rambip/sttui@dbfbdeff923514a4d3143970db2311513acd51fc -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/rambip
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@dbfbdeff923514a4d3143970db2311513acd51fc -
Trigger Event:
push
-
Statement type:
File details
Details for the file sttui-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sttui-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a5da350b166fe24d869492fd89af9f5b5e825991876f86e112d9893ee89c005
|
|
| MD5 |
a9b9bbd46367dc1d96f1dfb983a78990
|
|
| BLAKE2b-256 |
ca6dc1ac7fef0b42d923e920bfc70a6edc195b251def10e1768cc6414d0e9adf
|
Provenance
The following attestation bundles were made for sttui-0.1.1-py3-none-any.whl:
Publisher:
publish.yaml on rambip/sttui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sttui-0.1.1-py3-none-any.whl -
Subject digest:
9a5da350b166fe24d869492fd89af9f5b5e825991876f86e112d9893ee89c005 - Sigstore transparency entry: 1102018197
- Sigstore integration time:
-
Permalink:
rambip/sttui@dbfbdeff923514a4d3143970db2311513acd51fc -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/rambip
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@dbfbdeff923514a4d3143970db2311513acd51fc -
Trigger Event:
push
-
Statement type: