$npx skillfedfor your agent

pulsectl

Python high-level interface and ctypes-based bindings for PulseAudio (libpulse)

With conditionsPyPI MultimediaReleased Dec 2024164.9K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — pulsectl-24.12.0-py2.py3-none-any.whl
v24.12.0 · released 2024-12-26

Yes, if you need synchronous PulseAudio control on Linux and can accept dormant maintenance. The package is stable (MIT licensed, no known vulnerabilities, low install friction), but has not been actively developed for over 1.5 years. Use it for straightforward mixer tasks; for async patterns or active development, evaluate pulsectl-asyncio or direct libpulse bindings instead.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires PulseAudio server running and libpulse library installed on the system; Linux/POSIX only.
  • Low friction installation with no runtime dependencies.
  • Maintenance is dormant (596 days since last release), though the repository remains active with a recent commit on 2024-12-26 and modest community interest (180 stars).

License · maintenance · safety

MIT (permissive) — MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.

last release 2024-12-26 (596 days) · last repo commit 2024-12-26 · 180 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 164,916 downloads/mo, #10,535 on PyPI

Verify before relying

import pulsectl

with pulsectl.Pulse('my-app') as pulse:
  for sink in pulse.sink_list():
    pulse.volume_change_all_chans(sink, 0.1)
  • Whether Python 2 support (listed in classifiers) is actively maintained or tested in recent releases.
  • Current state of async support via pulsectl-asyncio and whether it is the recommended path for new projects.
Same gist for agents: .md · .json

What it is and what it does

pulsectl is a ctypes-based wrapper around PulseAudio's libpulse C library, exposing mixer-like controls and introspection operations through a blocking, synchronous Python API. It lets you query and manipulate audio devices (sinks, sources, cards), adjust per-channel volume, set default devices, and listen for server state changes—all without submitting audio samples or managing playback directly.

The module represents audio objects as thin wrappers around C structs (e.g., PulseSinkInfo, PulseVolumeInfo) and exposes most operations as methods on a Pulse client instance. Volume is handled as a list of per-channel floats in a 0–65536 range, with 1.0 representing normal level and >1.0 for software boost. For async use cases, the maintainer recommends pulsectl-asyncio instead.

Use it for

  • Build a volume control CLI or GUI tool that adjusts sink/source levels and switches default devices.
  • Monitor PulseAudio server events (device additions, removals, property changes) in a synchronous event loop.
  • Automate audio routing and profile switching across multiple sound cards and HDMI outputs.
  • Integrate PulseAudio control into a larger audio application without managing low-level C bindings.
  • Query audio device properties and capabilities (channel maps, profiles, proplist metadata) for diagnostics.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need synchronous PulseAudio control on Linux and can accept dormant maintenance.

The package is stable (MIT licensed, no known vulnerabilities, low install friction), but has not been actively developed for over 1.5 years. Use it for straightforward mixer tasks; for async patterns or active development, evaluate pulsectl-asyncio or direct libpulse bindings instead.

Install

pulsectl on PyPI

Before you install

Low friction installation with no runtime dependencies. Maintenance is dormant (596 days since last release), though the repository remains active with a recent commit on 2024-12-26 and modest community interest (180 stars).

Requires PulseAudio server running and libpulse library installed on the system; Linux/POSIX only.

License in practice

MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.

Quickstart

import pulsectl

with pulsectl.Pulse('my-app') as pulse:
  for sink in pulse.sink_list():
    pulse.volume_change_all_chans(sink, 0.1)

Verify before relying

  • Whether Python 2 support (listed in classifiers) is actively maintained or tested in recent releases.
  • Current state of async support via pulsectl-asyncio and whether it is the recommended path for new projects.

Package facts

LicenseMIT permissive
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceDormant 596 days since the last release
Last repo commit
First released
Downloads164,916 / month, #10,535 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: POSIXOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: MultimediaTopic :: Multimedia :: Sound/Audio

Evidence: pulsectl-24.12.0-py2.py3-none-any.whl

Tags

Capabilities
pulseaudio control pythonlibpulse bindingsaudio volume mixer pythonpulseaudio sink source managementpython audio device controlpulseaudio ctypes wrappersound system configuration
Topics
audio-controlsystem-integrationlinux-only
PyPI keywords
pulseaudiolibpulsepulsepabindingssoundaudioctypescontrolmixervolumemutesourcesink

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “pulseaudio control python”

  • pulsectlProvides a high-level Python interface to PulseAudio's libpulse…
  • SoundCardSoundCard plays and records audio across Linux, macOS, and Windows…
  • google-cloud-service-controlPython client library for Google Cloud Service Control API, enabling…

Give your agent the search over MCP, or paste the wish link into any chat.

More Multimedia packages

moviepy With conditions
PyPI · Multimedia · released May 2025

MoviePy is a Python library for video editing that reads, processes, and writes video and audio files by converting them to numpy arrays for frame-level manipulation and effect application.

MITpure Pythonaging
8.2Mdownloads / mo
tinytag Worth it
PyPI · WWW/HTTP · released Jul 2026

Reads metadata (artist, title, duration, bitrate, and more) from audio files in formats including MP3, MP4, FLAC, OGG, WAV, and others, without writing or modifying tags.

Install it if you need to extract metadata from audio files without the overhead of a heavier library.

MITpure Python · 3.7+
5.5Mdownloads / mo
xhtml2pdf With conditions
PyPI · Utilities · released Feb 2025

Converts HTML and CSS to PDF documents using Python, enabling developers with web skills to generate PDF templates without learning specialized PDF libraries.

However, the aging maintenance status (last release 537 days ago) warrants caution in production: verify that its rendering quality and feature set meet your specific…

Apache-2.0pure Python · 3.8+aging
4.3Mdownloads / mo
ffmpy With conditions
PyPI · Multimedia · released Nov 2025

ffmpy is a Python wrapper around FFmpeg that lets you build and execute FFmpeg command lines programmatically without writing shell commands directly.

MITpure Python · 3.9+aging
4.3Mdownloads / mo
piexif Worth it
PyPI · Multimedia · released Jul 2019

Piexif reads, writes, and manipulates EXIF metadata in JPEG and WebP images using pure Python with no compiled dependencies.

Install it if you need to read or edit EXIF in JPEG or WebP files without external dependencies.

MITpure Pythondormant
2.8Mdownloads / mo
torch-audiomentations With conditions
PyPI · Scientific/Engineering · released Jan 2025

Provides PyTorch-native audio data augmentation transforms that run on CPU or GPU, designed to integrate directly into neural network models as differentiable modules.

However, be aware that maintenance is aging (last release 576 days ago), multiprocessing and multi-GPU setups have known limitations, and some transforms have edge…

MITpure Python · 3.6+aging
2.1Mdownloads / mo

See also pycaw · sonos-websocket · python-osc · pydub · python-songpal · SoundCard · pyfmodex · miniaudio · python-vlc