Voice transcription CLI powered by OpenAI Whisper
Project description
shh
Voice transcription CLI using OpenAI Whisper.
Features
- Record from microphone (press Enter to stop)
- Format with AI (casual, business, neutral)
- Translate to any language
- Auto-copy to clipboard
- Async architecture
- Live progress display
Quick Start
# Install with pipx (recommended)
pipx install shh-cli
# Setup API key
shh setup
# Start recording (press Enter to stop)
shh
Installation
Using pipx (recommended)
pipx install shh-cli
Using pip
pip install shh-cli
Development Setup
git clone https://github.com/mariuspruvot/shh.git
cd shh
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
Usage
Basic Recording
# Quick record - press Enter to stop
shh
# Record for specific duration
shh --duration 60
Formatting Styles
# Casual style (removes filler words, conversational)
shh --style casual
# Business style (professional, formal)
shh --style business
# Neutral style (no formatting, Whisper output as-is)
shh --style neutral
Translation
# Transcribe and translate to English
shh --translate English
# Combine formatting and translation
shh --style business --translate French
# Set default translation language
shh config set default_translation_language English
# Now recordings auto-translate without --translate flag
shh
Configuration
# Show current configuration
shh config show
# Set default style
shh config set default_style casual
# Set default translation language
shh config set default_translation_language English
# Get specific setting
shh config get default_style
# Reset to defaults (preserves API key)
shh config reset
# Edit config file directly in $EDITOR
shh config edit
Configuration File
Configuration is stored in a platform-specific location:
- macOS:
~/Library/Application Support/shh/config.json - Linux:
~/.config/shh/config.json - Windows:
%APPDATA%\shh\config.json
You can also use environment variables with the SHH_ prefix:
export SHH_OPENAI_API_KEY="sk-..."
export SHH_DEFAULT_STYLE="casual"
export SHH_DEFAULT_TRANSLATION_LANGUAGE="English"
Tech Stack
- Python 3.11+ (async/await)
- OpenAI Whisper (transcription)
- PydanticAI (formatting)
- Typer (CLI)
- Rich (terminal UI)
- sounddevice (audio recording)
Development
# Run tests
uv run poe test
# Type checking
uv run poe type
# Linting
uv run poe lint
# Formatting
uv run poe format
# All checks (type + lint + test)
uv run poe check
Architecture
Pragmatic layered architecture: CLI → Core → Adapters
CLI → Commands, orchestration
Core → Domain models (TranscriptionStyle)
Adapters → APIs, audio, clipboard
See docs/architecture/overview.md for details.
License
MIT
Contributing
See CONTRIBUTING.md.
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 shh_cli-0.1.1.tar.gz.
File metadata
- Download URL: shh_cli-0.1.1.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d88a316b5a4dd76ceebeb58ab5564e2e6adb231f0156e66ff9a00d084e46149
|
|
| MD5 |
bcd4596339b1b3053cd48b821176582a
|
|
| BLAKE2b-256 |
be351261439cde93a1b3b98f5639c99402f79187f11cdf3d4a6e22f3af8d9284
|
File details
Details for the file shh_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: shh_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5401e710e3a48182b115f1f64e4820b8ff20cdcbafd5fa4ab75c862db6dda33e
|
|
| MD5 |
2f413a830761a0ebdb9e733fc44749e9
|
|
| BLAKE2b-256 |
f3b25e261444d840bc26edb2b02885cd6b0c5c5dd1dad012835e82f257dcc554
|