Discover and control Apple media/AirPlay devices (HomePod, Apple TV, AirPlay speakers) from macOS. Use when you want to scan for AirPlay devices, map names→IPs/IDs, pair/connect, and control playback/volume using pyatv (atvremote) and Airfoil.
Security Analysis
high confidenceThe skill's code, scripts, and instructions are coherent with its stated purpose (discovering AirPlay devices and controlling them via pyatv and Airfoil) and do not request unrelated credentials or install arbitrary remote code.
The name/description match the behavior: scripts call atvremote (pyatv) to scan and provide wrappers that delegate speaker control to an Airfoil script. No unrelated services, credentials, or binaries are requested.
SKILL.md and the bundled scripts limit actions to local network discovery (atvremote scan), parsing that output, and delegating speaker connect/volume to a local Airfoil helper. They do expose discovered IPs and device identifiers (expected for a network scan) but do not transmit data to external endpoints.
This is instruction-only (no install spec). The README/SKILL.md recommend installing pyatv via pipx and using Airfoil (Homebrew cask). Nothing is downloaded from arbitrary URLs and no archive extraction is present.
No environment variables or credentials are requested. The skill's runtime needs (pyatv/atvremote, Node for the JSON parser, and Airfoil tooling) are proportionate to the described functionality.
The skill does not request always:true, does not modify other skills or system-wide settings, and does not persist credentials. It runs only the supplied scripts when invoked.
Guidance
This skill appears to do what it says: scan the local network for AirPlay devices (showing IPs and identifiers) and control speakers by delegating to an Airfoil helper. Before installing/using it: 1) ensure you are comfortable with local network scanning (outputs include IP addresses) and avoid committing scan outputs; 2) install pyatv (atvremote) via pipx and have Node available for the JSON script; 3) ensure the expected airfoil helper (../../airfoil/airfoil.sh relative to the skill) exists and that you trust that helper—the skill delegates volume/connect to that script; 4) note the README recommends pinning pyatv to Python 3.12; 5) review the small scripts locally (they execute atvremote and spawn child processes) before running. There are no unexplained credential requests or remote downloads, so the skill is internally consistent.
Latest Release
v0.1.1
0.1.1: add scan-hosts helper for faster targeted scans (atvremote --scan-hosts).
More by @officialpm
Published by @officialpm on ClawHub