Skip to main content

stttui: Speech To Text Terminal User Interface

v0.3.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

Metadata

Release files for stttui 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stttui 0.3.0
File Size Uploaded
stttui-0.3.0.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stttui 0.3.0
File Interpreter ABI Platform
stttui-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.2 kB

Release files / stttui-0.3.0.tar.gz

Download URL stttui-0.3.0.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6f25baa552f8755a5479c4d62ca43f35f5a8c70e9229c45a90be7d631ee42eb1
BLAKE2b-256 checksum
How to use checksums
6df01a5ac602fd17bb7e9c646c8d594fc5332363f49be8bf4610e7891a39810a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / stttui-0.3.0-py3-none-any.whl

Download URL stttui-0.3.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
45c166982d74fa6e14d4cd7e1acb817f6ec03d2f9c2af5548f6b031ec2dc2032
BLAKE2b-256 checksum
How to use checksums
b78cffd05fae085f704e3b7f3bc54e6772362b67ea99d88453d7916bc9ce3d24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page