Skip to main content

Speech-to-text CLI and system-tray app for dictating into any focused window. Local (vosk, faster-whisper) or cloud (groq, openai) backends, batch or streaming.

Project description

pypi

Scribe

Talk. It types. Scribe is a speech-to-text CLI and tray app that pipes transcribed text straight into the focused window. It supports local and cloud-based APIs, batch and streaming workflows.

What it does

  • Records from your mic and transcribes via one of four backends — Vosk (local, streaming), Whisper (local, batch), OpenAI (cloud, batch or streaming), Groq (cloud, batch).
  • Delivers the transcript three ways: paste into the focused window (default), copy to clipboard, or print to the terminal.
  • Runs as a system tray icon with a single Record button, or as an interactive terminal TUI — same menu in both.
  • Hooks into your DE's keyboard shortcuts via SIGUSR1 (toggle recording) and SIGUSR2 (cancel).
  • Cross-platform: tested on Ubuntu (X11 and Wayland), macOS, Windows; works under Termux for clipboard / terminal output.

Getting started

sudo apt-get install portaudio19-dev xclip   # Ubuntu; macOS: brew install portaudio
pip install scribe-cli[all]
export GROQ_API_KEY=YOURAPIKEY                # or OPENAI_API_KEY, or skip and run local
scribe

Scribe picks the first backend whose key / dependency is present, in order groqopenaiwhispervosk, and launches the tray icon. Press Record, speak, press Stop.

See documentation below for setting up keyboard input on Ubuntu Wayland.

Getting an API key

Groq is a good cloud backend to start with — very fast, quite accurate, and the free tier is generous enough for everyday dictation. Sign up at console.groq.com, create an API key under Settings → API Keys, and export it as GROQ_API_KEY.

I personally use OpenAI with gpt-4o-mini-transcribe as it is also fast and perhaps more accurate for my accent-tainted English.

Backends at a glance

Backend --backend Default model Streaming model(s) Requires
Groq (cloud) groq whisper-large-v3-turbo GROQ_API_KEY
OpenAI (cloud) openai gpt-4o-mini-transcribe gpt-realtime-whisper OPENAI_API_KEY
Whisper (local) whisper small pip install scribe-cli[whisper]
Vosk (local) vosk language-dependent all Vosk models pip install scribe-cli[vosk]

Whether a transcription appears live as you speak or all at once when you stop depends on the model picked — see docs/backends.md.

Documentation

Compatibility

Initially developed for Python 3 on Ubuntu 24.04 (GNOME + Wayland); works on macOS and Windows too. Wayland keystroke injection is convoluted but solved. For dependencies of individual subsystems, check pynput (keyboard) and pystray (tray icon).

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

scribe_cli-0.16.0.tar.gz (143.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scribe_cli-0.16.0-py3-none-any.whl (58.0 kB view details)

Uploaded Python 3

File details

Details for the file scribe_cli-0.16.0.tar.gz.

File metadata

  • Download URL: scribe_cli-0.16.0.tar.gz
  • Upload date:
  • Size: 143.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scribe_cli-0.16.0.tar.gz
Algorithm Hash digest
SHA256 ce31f9d21b441e6d936b8ca4fa1ae8b528619e58d55b6a50e287af5206d77e1d
MD5 0ffb92f29510a1e5cb5603ad7b7e6201
BLAKE2b-256 40ee4c495b79aa4e3a5e943a36dd9633007ff012b096ccf1ce2b58fe00b9f97b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scribe_cli-0.16.0.tar.gz:

Publisher: pypi.yml on perrette/scribe

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

File details

Details for the file scribe_cli-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: scribe_cli-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 58.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scribe_cli-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5549f35e98fd19a6526f66ef7217e19f13e23cd1e0bcb3e421b64a6c472172e7
MD5 aafb5dc0dfdf98fa5fc5bc509edab2ef
BLAKE2b-256 66b836f690fd1ec0acd2dda5a9ced69e7e52d664c36404a3132d7753b4cf3727

See more details on using hashes here.

Provenance

The following attestation bundles were made for scribe_cli-0.16.0-py3-none-any.whl:

Publisher: pypi.yml on perrette/scribe

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