Skip to main content

handsfreed

CI PyPI Python Versions License

handsfreed is a local, real-time speech-to-text daemon for Linux. It uses the faster-whisper library to provide high-quality, offline transcription.

This package is the daemon component of the Handsfree project. It is controlled by the handsfreectl command-line tool.

Installation

Manual Installation

handsfreed requires PortAudio, which is a dependency of the sounddevice Python library. You must install the PortAudio library and its development headers using your system's package manager.

  • Debian/Ubuntu:

    sudo apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev
    
  • Fedora/CentOS/RHEL:

    sudo dnf install portaudio-devel
    
  • Arch Linux:

    sudo pacman -S portaudio
    

The handsfreed daemon is controlled by the handsfreectl command-line tool. You must install it separately.

  • You can download pre-compiled binaries from the handsfreectl releases page.

  • If you have the Cargo installed, you can install handsfreectl from Crates.io:

    cargo install handsfreectl
    

Once the dependencies are installed, you can install handsfreed using pip:

pip install handsfreed

Nix Flake

If you use the Nix package manager with flakes enabled, the Handsfree flake provides both handsfreectl and handsfreed packages along with a Home Manager module to configure and manage the handsfreed daemon as a systemd service.

For detailed instructions on how to add the flake to your system and configure the service, please refer to the Handsfree flake's README.

Usage

handsfreed is designed to be run as a background service.

  1. Create a configuration file: Create a configuration file at ~/.config/handsfree/config.toml. You can start with the example configuration.

  2. Run the daemon: The daemon will start listening for commands from handsfreectl.

    handsfreed
    
  3. Control with handsfreectl: Use the handsfreectl CLI to start/stop transcription and check the status of the daemon.

Configuration

handsfreed is configured via a TOML file located at ~/.config/handsfree/config.toml. The configuration allows you to set up your audio input, Whisper model, VAD parameters, and more.

For a full list of configuration options, please see the example configuration file.

License

This project is licensed under the GNU General Public License v3.0.

Release files for handsfreed 0.2.0

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

Source distribution (sdist)

Source distribution for handsfreed 0.2.0
File Size Uploaded
handsfreed-0.2.0.tar.gz 50.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for handsfreed 0.2.0
File Interpreter ABI Platform
handsfreed-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 92.3 kB

Release files / handsfreed-0.2.0.tar.gz

Download URL handsfreed-0.2.0.tar.gz
Size 50.9 kB
Tags Source
SHA-256 checksum
How to use checksums
40d4dc0ef3f2b728bf342e37635d7f982fbc5f57760853e91704953415277fd6
BLAKE2b-256 checksum
How to use checksums
940375e72bdbaf0d795db266ddd41068c284915264aaea36209ca2496edc5de5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.

Transparency log

Release files / handsfreed-0.2.0-py3-none-any.whl

Download URL handsfreed-0.2.0-py3-none-any.whl
Size 41.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d709badc0d9d8d54e9e6951f8ca9b4c9de08cfdd997250ef60fb1f9d3976e13b
BLAKE2b-256 checksum
How to use checksums
2aa10217fb8eaaed4febe2241a4b1c5e857c6c50a055de853245a3ae8b92e83d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

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