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
.wavfile (e.g., directly into your Obsidian vault). - Transcode it into
.oggor other formats for efficiency (via ffmpeg). - Transcribe it into Markdown using Whisper (Currently supports
whisper.cppserver). - 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
-
Install system dependencies:
# Debian/Ubuntu sudo apt install libgirepository1.0-dev libcairo2-dev python3-dev ffmpeg
-
Install the package using
uv:uv tool install push-to-whisper
-
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
- likeablob/parakeet-api - Whisper-compatible API for Parakeet. < 1sec transcoding on CPU!
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| push_to_whisper-0.2.1.tar.gz | 25.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.