Skip to main content

push-to-whisper

A smart voice memo tool aka push-to-stt-to-md-to-llm-to-clipboard-or-whatever.

What you can do with push-to-whisper:

  • Record audio while holding a global key combination.
  • Save the recording as a .wav file (e.g., directly into your Obsidian vault).
  • Transcode it into .ogg or other formats for efficiency (via ffmpeg).
  • Transcribe it into Markdown using Whisper (Currently supports whisper.cpp server).
  • Refine the text using LLM APIs like OpenAI, Gemini, or Ollama (via any-llm).
    • Auto tagging, auto summarization, etc.
  • Copy the result to your clipboard automatically.
  • Notify success or send results to notification services like Slack, Discord, or Ntfy (via Apprise).

Every step above is modular. You can combine them to build your own custom workflow in a simple YAML configuration file.

Installation

  1. Install system dependencies:

    # Debian/Ubuntu
    sudo apt install libgirepository1.0-dev libcairo2-dev python3-dev ffmpeg
    
  2. Install the package using uv:

    uv tool install push-to-whisper
    
  3. Install the systemd user service and generate a default config:

    push-to-whisper install-daemon
    

Configuration

The configuration file is located at ~/.config/push-to-whisper/config.yaml. You can customize the Whisper endpoint, LLM API keys (any-llm), and processing pipelines.

To re-initialize or export the default configuration:

push-to-whisper init --bare -o ~/.config/push-to-whisper/config.yaml

Usage

Once the daemon is installed via install-daemon, it will start automatically on login.

Default Shortcuts

On Linux (KDE/GNOME), shortcuts are managed by the system. After running install-daemon, you can assign keys to the following actions in your system settings:

  • Transcription to Markdown: (Recommended: ALT+SHIFT+x) - Transcribe -> Transcode -> Save Audio -> Save Markdown -> Notify.
  • Transcription to Clipboard: (Recommended: ALT+SHIFT+c) - Transcribe -> Transcode -> Copy to Clipboard -> Notify.

Note: Currently tested and supported only on Linux (Fedora) with KDE Plasma (Wayland). Native support for Windows and macOS is planned for future releases.

Development

  • Formatting: uv run ruff format .
  • Linting: uv run ruff check . --fix
  • Testing: uv run pytest

Related Projects

License

MIT

Metadata

Release files for push-to-whisper 0.2.1

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

Source distribution (sdist)

Source distribution for push-to-whisper 0.2.1
File Size Uploaded Provenance
push_to_whisper-0.2.1.tar.gz 25.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for push-to-whisper 0.2.1
File Interpreter ABI Platform
push_to_whisper-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.9 kB

Release files / push_to_whisper-0.2.1.tar.gz

Download URL push_to_whisper-0.2.1.tar.gz
Size 25.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1dc5673034d047a2d4445094bbb05bb3f831e1b7a89587818a4e92c78d18dbf0
BLAKE2b-256 checksum
How to use checksums
2e2e201df176b46d007f6894b86ff8f813f655923d03dbe8ba11ca29dec2e50a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / push_to_whisper-0.2.1-py3-none-any.whl

Download URL push_to_whisper-0.2.1-py3-none-any.whl
Size 33.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
caf3aa6a84bde705fe9abb3aabc2f9859d96dd533a1b7fce31542a933d779abb
BLAKE2b-256 checksum
How to use checksums
834e5e4921fd7a8414e33ca072ebf5d55ee2b84f2bdeeadd2bc8dd7b5eab06a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for push-to-whisper 0.2.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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