pyheos
An async python library for controlling HEOS devices through the HEOS CLI Protocol
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no external dependencies, supports current Python versions (3.11+), carries a permissive license, and has no known vulnerabilities. It fills a clear niche for HEOS device automation. Install it if you own compatible Denon or Marantz equipment and need programmatic control; skip it if you have no HEOS devices or prefer a different audio ecosystem.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or newer; target HEOS device must be on the same local network and running HEOS firmware 3.40 or newer.
- Low friction: pure Python wheel with no runtime dependencies.
- Actively maintained as of June 2026 with recent releases; requires Python 3.11 or newer.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
last release 2025-10-12 (306 days) · last repo commit 2026-06-27 · 35 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 95,680 downloads/mo, #13,254 on PyPI
Alternatives
Verify before relying
pip install pyheos
import pyheos
heos = await pyheos.Heos.create_and_connect('172.16.0.1', auto_reconnect=True)
players = await heos.get_players()
await heos.disconnect()- Whether the library supports HEOS firmware versions older than 3.40 despite the stated requirement.
- Performance characteristics when managing large numbers of HEOS devices or players on a single connection.
- Availability and completeness of API documentation beyond the excerpt provided.
What it is and what it does
pyheos is an async Python library that connects to Denon and Marantz audio products equipped with HEOS Built-in, allowing you to control them programmatically over the local network. It implements the HEOS CLI Protocol (version 1.21) and provides a single connection point to manage all compatible devices on your network, with support for player discovery, playback commands, event subscriptions, and automatic reconnection. The library is designed around async/await patterns and includes options for heart-beat monitoring, event filtering, account sign-in, and failover to alternate hosts.
The main entry point is the `Heos` class, which you instantiate via `create_and_connect()` with a host IP address and optional configuration. Once connected, you can retrieve available players, subscribe to state changes through a dispatcher, and issue control commands. It requires Python 3.11 or newer and has no external runtime dependencies, making it lightweight to integrate into home automation frameworks or standalone scripts.
Use it for
- Automate multi-room audio playback across HEOS devices in a home automation system.
- Build a custom control interface or dashboard for Denon/Marantz HEOS speakers and receivers.
- Monitor and react to player state changes (play, pause, track changes) via event subscriptions.
- Implement failover logic to maintain control when the primary HEOS device becomes unavailable.
- Integrate HEOS device control into a larger smart home orchestration platform.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no external dependencies, supports current Python versions (3.11+), carries a permissive license, and has no known vulnerabilities. It fills a clear niche for HEOS device automation. Install it if you own compatible Denon or Marantz equipment and need programmatic control; skip it if you have no HEOS devices or prefer a different audio ecosystem.
Install
pyheos on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of June 2026 with recent releases; requires Python 3.11 or newer.
Requires Python 3.11 or newer; target HEOS device must be on the same local network and running HEOS firmware 3.40 or newer.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install pyheos
import pyheos
heos = await pyheos.Heos.create_and_connect('172.16.0.1', auto_reconnect=True)
players = await heos.get_players()
await heos.disconnect()
Verify before relying
- Whether the library supports HEOS firmware versions older than 3.40 despite the stated requirement.
- Performance characteristics when managing large numbers of HEOS devices or players on a single connection.
- Availability and completeness of API documentation beyond the excerpt provided.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 306 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 95,680 / month, #13,254 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Home AutomationTopic :: Software Development :: Libraries |
Evidence: pyheos-1.0.6-py3-none-any.whl
Tags
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 › “heos device control python”
- pyheosAn asynchronous Python library for controlling Denon and Marantz HEOS…
- brainstemProvides Python bindings to control and interact with Acroname…
- pytangoPyTango exposes the complete Tango C++ API through Python, providing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also pyblu · denonavr · pykaleidescape · aioslimproto · pysqueezebox · wiim · soco · sonos-websocket · pyobjc-framework-MediaPlayer · aiohue