Skip to main content

Speech-to-Text TUI — offline transcription powered by faster-whisper

Project description

stttui: Speech To Text Terminal User Interface

v0.2.0 | Python 3.10+ | MIT License

A local, fully offline speech-to-text tool powered by faster-whisper. Record audio with a global hotkey from any window, transcribe it on-device, and get the result copied straight to your clipboard — no cloud, no API keys, no latency.

Comes with a polished terminal UI built on Textual, complete with a live audio level meter, transcription history, and on-the-fly model switching.

stttui in action


Features

  • Fully offline — runs entirely on your machine using faster-whisper with int8 quantization. No data ever leaves your device.
  • Global hotkeys — record from anywhere without focusing the terminal
  • Live audio meter — real-time visual feedback while recording
  • Transcription history — timestamped, scrollable log of every dictation
  • Model switching — swap between tiny, base, small, medium, and large whisper models on the fly
  • Clipboard integration — transcriptions are automatically copied and ready to paste
  • Cross-platform — works on Windows, macOS, and Linux
  • Three modes — rich TUI (default), lightweight CLI (--cli), or headless (--headless) for scripting/piping

Installation

Homebrew (macOS / Linux)

brew tap aholten/tap
brew install stttui

pip / pipx

# With pipx (recommended — isolated environment)
pipx install stttui

# Or with pip
pip install stttui

From source

git clone https://github.com/aholten/sttui.git
cd stttui
pip install .

On macOS you may need to grant terminal accessibility permissions for global hotkeys. On Linux, install portaudio (sudo apt install portaudio19-dev) and xclip for clipboard support.

Usage

Hotkeys

These work globally — even when the terminal is not focused:

Hotkey Action
Ctrl+Shift+Space Start / stop recording
Ctrl+C Quit

Workflow

  1. Launch the tool — the whisper model loads in the background
  2. Switch to any application (browser, editor, chat, etc.)
  3. Press Ctrl+Shift+Space to start recording
  4. Speak
  5. Press Ctrl+Shift+Space again to stop
  6. The transcription is copied to your clipboard — paste with Ctrl+V

TUI Mode (default)

stttui

The terminal interface includes:

  • Model selector — dropdown to switch whisper models without restarting
  • Status badge — shows IDLE / RECORDING / TRANSCRIBING state
  • Level meter — live audio input visualization
  • Transcription history — scrollable log with timestamps
  • Status log — model loading progress and system messages

CLI Mode

stttui --cli

Minimal output, no UI — just hotkeys and clipboard.

Headless Mode

Record, transcribe, print to stdout, and exit. No hotkeys or UI — ideal for scripts and piping.

# Record until crtl+shift+space is pressed
stttui --headless

# Record for exactly 10 seconds
stttui --headless --duration 10

# Pipe transcription to another command
stttui --headless --duration 5 | xargs echo "You said:"

Status messages go to stderr, transcription goes to stdout.

Options

Flag Description Default
--cli Run in CLI-only mode (no TUI) off
--headless Record, transcribe, print to stdout, and exit off
--duration Recording duration in seconds (headless mode; omit to wait for Enter)
--model Whisper model size base
--version Print version and exit
# Example: launch with the small model
stttui --model small

Model Sizes

Larger models are more accurate but slower to load and transcribe. All models run on CPU with int8 quantization.

Model Parameters Speed
tiny 39M Fastest
base 74M Fast
small 244M Moderate
medium 769M Slow
large 1550M Slowest

In TUI mode you can switch models from the dropdown at any time.

Platform Notes

Platform Notes
Windows Works out of the box via Git Bash or MSYS2.
macOS Clipboard works via pbcopy. You may need to grant terminal accessibility permissions for global hotkeys.
Linux Install xclip or xsel for clipboard support (sudo apt install xclip).

Transcription Log

All transcriptions are automatically saved to transcription_log.txt with timestamps for reference.

License

MIT

Author

Anthony Holten @aholten on GitHub

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

stttui-0.2.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.

stttui-0.2.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file stttui-0.2.0.tar.gz.

File metadata

  • Download URL: stttui-0.2.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 stttui-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c9a2ad2251fa634d72096f9a32693bc44b00cae1153cd0b59a4aadc29a6f92ce
MD5 ed05240671c7accc76e92d44be480839
BLAKE2b-256 854d58a06dcf9429c1b20e024acff4933e7ff6afebfe98310ed8a9884979fcf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for stttui-0.2.0.tar.gz:

Publisher: publish.yml on aholten/stttui

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

File details

Details for the file stttui-0.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for stttui-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bab036aa8c29f5119ef17312cf80d566aba8d9c8e64e946318271bb410085210
MD5 39d1cb458b9e23d12296079021b659a8
BLAKE2b-256 14df644e7ef950d902b93d2e9498103d302d19875e24f082665e1554323afe24

See more details on using hashes here.

Provenance

The following attestation bundles were made for stttui-0.2.0-py3-none-any.whl:

Publisher: publish.yml on aholten/stttui

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