Skip to main content

Voice transcription CLI powered by OpenAI Whisper

Project description

shh

PyPI version Python versions CI License Documentation

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shh_cli-0.1.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

shh_cli-0.1.1-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

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

Hashes for shh_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3d88a316b5a4dd76ceebeb58ab5564e2e6adb231f0156e66ff9a00d084e46149
MD5 bcd4596339b1b3053cd48b821176582a
BLAKE2b-256 be351261439cde93a1b3b98f5639c99402f79187f11cdf3d4a6e22f3af8d9284

See more details on using hashes here.

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

Hashes for shh_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5401e710e3a48182b115f1f64e4820b8ff20cdcbafd5fa4ab75c862db6dda33e
MD5 2f413a830761a0ebdb9e733fc44749e9
BLAKE2b-256 f3b25e261444d840bc26edb2b02885cd6b0c5c5dd1dad012835e82f257dcc554

See more details on using hashes here.

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