Skip to main content

sttop

sttop transcribes your mic and system audio locally, right in your terminal. It labels who's speaking and writes a Markdown transcript as you talk.

Start recording now

uvx sttop

sttop recording a standup

It runs on Linux and macOS and downloads models on the first run. An animated progress bar shows the current loading stage. Recording starts as soon as audio devices are ready; speech is buffered in memory while models load, then the transcript catches up automatically. The TUI shows buffering, catch-up, and live transcription states. Quitting stops capture and finishes buffered speech before exiting. Later starts reuse cached models and load transcription and speaker identification concurrently. You don't need API keys. On macOS 13+, give your terminal permission in System Settings → Privacy & Security → Screen & System Audio Recording, then restart the terminal to capture system audio.

Installation options

On Linux, use CPU-only PyTorch wheels for a smaller download:

uvx --index https://download.pytorch.org/whl/cpu sttop

To install permanently:

uv tool install sttop

Usage

uvx sttop -t "standup"               # name the session
uvx sttop ls                         # list transcripts in a folder tree
uvx sttop read                       # open the latest transcript
uvx sttop read standup               # find a session by name
uvx sttop follow                     # stream the live transcript, e.g. to an agent
uvx sttop devices --test             # check audio sources
uvx sttop doctor                     # troubleshoot setup
uvx sttop --help                     # all commands and options
Key Action
q Name the session and quit
ctrl+c Quit without naming
space Pause / resume
r Rename a speaker throughout the transcript
y Copy the transcript so far

sttop saves each line to ~/.local/share/sttop/sessions/ as it's transcribed. It labels your mic as "you" and assigns speaker labels to the system audio.

Customize

Run uvx sttop config to create ~/.config/sttop/config.toml. The comments explain the settings for audio sources, models, speaker labels, themes, and storage.

sttop uses Parakeet for transcription: MLX on Apple Silicon Macs, ONNX on CPU on Linux and Intel Macs. Apple Silicon installations include MLX automatically. Choose explicitly with sttop --backend mlx or sttop --backend onnx, or set backend = "mlx" / "onnx" under [stt] in your config. The default is "auto"; it falls back to ONNX if MLX dependencies are missing. Explicit MLX requests and model-loading failures report an error instead.

Both engines download weights from Hugging Face on first use and reuse the local cache. ONNX uses istupakov/parakeet-tdt-0.6b-v3-onnx; MLX uses mlx-community/parakeet-tdt-0.6b-v3. Switching engines requires a separate model download. The existing default model name and the v2 ONNX alias map to their MLX equivalents automatically; other custom ONNX models continue to use ONNX in auto mode.

The built-in v2/v3 downloads are pinned to specific Hugging Face commits and limited to the required ONNX or Safetensors weights and configuration files. These are community conversions of NVIDIA weights, not NVIDIA-owned download repositories. The ONNX conversion is published by the onnx-asr maintainer; the MLX conversion is published by mlx-community. No Python code from model repositories is loaded. Custom --model overrides select your own source and are not covered by these built-in revision pins. Python dependencies are resolved with artifact hashes in uv.lock for uv sync --locked installs.

Encrypted backup

uvx sttop sync

The first run sets up a private Git remote and a vault passphrase. sttop keeps Markdown files on your machine and syncs encrypted copies after each recording. Use the same remote and passphrase on another machine to share your transcripts.

Keep a copy of the passphrase. You can't recover the remote backups without it. Set storage.encrypt = "always" to encrypt local transcripts too.

Updates

sttop checks PyPI in the background and shows an update command when a newer stable release is available. Checks are cached for six hours; offline checks never delay recording. Use uvx sttop@latest to run the latest release, or uv tool upgrade sttop for a permanent installation.

Development

git clone https://github.com/v4rgas/sttop
cd sttop
uv sync --extra dev
uv run sttop
uv run pytest

License

MIT

Release files for sttop 0.11.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 sttop 0.11.0
File Size Uploaded
sttop-0.11.0.tar.gz 217.3 kB Details

Built distribution (wheel)

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

Total release size: 294.4 kB

Release files / sttop-0.11.0.tar.gz

Download URL sttop-0.11.0.tar.gz
Size 217.3 kB
Tags Source
SHA-256 checksum
How to use checksums
38238e16205c7e92fc2dd42b954e0b3b44d889f62d83801f5527ff1da7c4e895
BLAKE2b-256 checksum
How to use checksums
6d0a3d925e333fda78aa2c80a4302589d766a16464f35b0f0b72cddbef30c863
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release files / sttop-0.11.0-py3-none-any.whl

Download URL sttop-0.11.0-py3-none-any.whl
Size 77.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
38fa8a3e40c7d1a7e629ccd661a300325a30998a1362f614b3656cdf2de8bfdd
BLAKE2b-256 checksum
How to use checksums
de5ee410b46269f204e1279ea1e7e5e6af6f3dd26f47e50c9d617a3d687fa38f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.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