← Back to Skills Marketplace
lucakaufmann

Apple TV

by LucaKaufmann · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
2410
Downloads
2
Stars
4
Active Installs
1
Versions
Install in OpenClaw
/install appletv
Description
Control Apple TV via pyatv. Use for play/pause, navigation, volume, launching apps, power control, and checking what's playing. Triggers on "Apple TV", "TV", "what's playing", "pause TV", "play TV", "turn off TV".
README (SKILL.md)

Apple TV Control

Control Apple TV via the pyatv library.

Requirements

pipx install pyatv --python python3.11

Note: pyatv requires Python ≤3.13. Python 3.14+ has breaking asyncio changes. Use --python python3.11 or python3.13 with pipx.

Configuration

Config file at ~/clawd/config/appletv.json:

{
  "name": "Living Room",
  "id": "DEVICE_ID",
  "ip": "192.168.x.x",
  "credentials": {
    "companion": "...",
    "airplay": "..."
  }
}

First-Time Pairing

# Find your Apple TV
atvremote scan

# Pair Companion protocol (required)
atvremote --id \x3CDEVICE_ID> --protocol companion pair

# Pair AirPlay protocol (for media)
atvremote --id \x3CDEVICE_ID> --protocol airplay pair

Save the credentials to the config file.

Quick Commands

Status & Playing

scripts/appletv.py status     # Full status with now playing
scripts/appletv.py playing    # What's currently playing

Playback Control

scripts/appletv.py play       # Play/resume
scripts/appletv.py pause      # Pause
scripts/appletv.py stop       # Stop
scripts/appletv.py next       # Next track/chapter
scripts/appletv.py prev       # Previous

Navigation

scripts/appletv.py up         # Navigate up
scripts/appletv.py down       # Navigate down
scripts/appletv.py left       # Navigate left
scripts/appletv.py right      # Navigate right
scripts/appletv.py select     # Press select/OK
scripts/appletv.py menu       # Menu button
scripts/appletv.py home       # Home screen

Volume

scripts/appletv.py volume_up
scripts/appletv.py volume_down

Power

scripts/appletv.py turn_on    # Wake from sleep
scripts/appletv.py turn_off   # Put to sleep
scripts/appletv.py power      # Toggle

Apps

scripts/appletv.py apps       # List installed apps
scripts/appletv.py app Netflix
scripts/appletv.py app YouTube
scripts/appletv.py app "Disney+"

Discovery

scripts/appletv.py scan       # Find Apple TVs on network

Example Interactions

  • "What's playing on the TV?" → scripts/appletv.py status
  • "Pause the TV" → scripts/appletv.py pause
  • "Turn off the Apple TV" → scripts/appletv.py turn_off
  • "Open Netflix on TV" → scripts/appletv.py app Netflix
Usage Guidance
This skill appears to do what it says: control Apple TV locally via pyatv/atvremote. Before installing, consider: (1) Pairing generates companion/airplay tokens that are stored in a JSON file under your home directory — protect that file (set restrictive permissions) because those tokens grant control of the device. (2) The script passes credentials on the command line to atvremote, which can make them visible to local users via process listings — run on a trusted machine. (3) Install pyatv with pipx as instructed and verify you trust that package source. (4) The config path referenced in SKILL.md (~/clawd/config/appletv.json) matches one of the script's lookup paths, but the script also checks ~/.config/clawdbot/appletv.json — be aware of which file you populate. If you need stronger protection for credentials, consider storing them in a secure store rather than plaintext JSON. If you want additional assurance, review the included appletv.py source yourself (it is short and straightforward).
Capability Analysis
Type: OpenClaw Skill Name: appletv Version: 1.0.0 This skill bundle is designed to control Apple TV devices using the `pyatv` library and its `atvremote` CLI tool. The `SKILL.md` provides clear, non-malicious instructions for installation, configuration, and usage. The `appletv.py` script acts as a wrapper, reading configuration from `~/clawd/config/appletv.json` (which contains sensitive device credentials) and executing `atvremote` commands via `subprocess.run`. While user input is passed to `atvremote`, `subprocess.run` is used with a list of arguments (default `shell=False`), mitigating direct shell injection risks. There is no evidence of data exfiltration, malicious execution (like `curl|bash` or `eval`), persistence mechanisms, prompt injection attempts against the agent, or obfuscation. The functionality is clearly aligned with its stated purpose.
Capability Assessment
Purpose & Capability
Name/description match the included script and README: the skill controls Apple TV via pyatv/atvremote. No unrelated binaries, cloud APIs, or credentials are requested.
Instruction Scope
SKILL.md instructs installing pyatv and performing local pairing, which is appropriate. The instructions and script require a local config file containing companion/airplay credentials; the skill does not attempt to read other system files or external endpoints. Note: credentials are stored as JSON in the user's home directory and the script passes them on the command line to atvremote (visible to local process listings) — a normal tradeoff for this tooling but a local secrecy consideration.
Install Mechanism
No install spec in the registry; SKILL.md suggests installing pyatv via pipx — a reasonable, minimal instruction. There are no downloads from untrusted URLs or archive extraction steps in the skill package.
Credentials
The skill requests no environment variables and only needs locally generated Apple TV pairing credentials stored in a config file. The number and type of secrets (companion/airplay tokens) are proportional to the stated purpose.
Persistence & Privilege
always is false and the skill does not request elevated or persistent platform privileges. It reads/writes only its own config paths and does not modify other skills or global agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install appletv
  3. After installation, invoke the skill by name or use /appletv
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release
Metadata
Slug appletv
Version 1.0.0
License
All-time Installs 4
Active Installs 4
Total Versions 1
Frequently Asked Questions

What is Apple TV?

Control Apple TV via pyatv. Use for play/pause, navigation, volume, launching apps, power control, and checking what's playing. Triggers on "Apple TV", "TV", "what's playing", "pause TV", "play TV", "turn off TV". It is an AI Agent Skill for Claude Code / OpenClaw, with 2410 downloads so far.

How do I install Apple TV?

Run "/install appletv" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Apple TV free?

Yes, Apple TV is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Apple TV support?

Apple TV is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Apple TV?

It is built and maintained by LucaKaufmann (@lucakaufmann); the current version is v1.0.0.

💬 Comments