Apple TV 4K
Control an Apple TV 4K (remote keys, installed apps, keyboard input, supported sleep/wake) locally with pyatv over Muse Home Link
- What
- Control an Apple TV 4K (remote keys, installed apps, keyboard input, supported sleep/wake) locally with pyatv over Muse Home Link
- Cost
- Free
- Needs
- Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else.
- Install
- Copy the installer prompt below into your Muse — your agent does the rest.
Curated by Skill Harbor — Control an Apple TV 4K (remote keys, installed apps, keyboard input, supported sleep/wake) locally with pyatv over Muse Home Link, using the Companion and/or AirPlay services and normal user-approved on-screen PIN pairing, with the resulting credentials stored securely and session encryption retained. Feature availability is read from the connected client first, because generations and firmware differ; play_url is expressly not recommended on tvOS 26.6. By @facebookincubator, listed here with credit to its creator. Apache-2.0 licensed. Skill Harbor never reviews the code, review it yourself before use.
Version:
Install
Copy the install package below, then paste it into Muse📌 Pinned version: commit e6fe517Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else. Prerequisites — Muse Home Link and a compatible physical device are required to USE this skill, not to install it: installing the skill file itself needs no account, no key and no device, and this install does NOT set up Home Link, pair anything or ask for any credential. But the skill is instructions only. To use it I must read and follow ~/docs/devices/home_link.md in my Muse environment, have the compatible physical device named below already set up on my local network, and have normal user-approved on-screen PIN pairing for each required protocol, typically Companion and/or AirPlay, with the resulting credentials stored securely — and a person able to read the pairing PIN when needed. Installing the file configures none of that. Install "Apple TV 4K" for me. It controls an Apple TV 4K on my local network with a compatible pyatv client, using Home Link TCP transport and current discovered service data. It first confirms the generation, OS build and service endpoints (example identifiers: AppleTV6,2 first generation, AppleTV11,1 second) and reads the connected client's feature availability, because generations, apps and firmware differ. It reuses valid pairing credentials; if none exist, it requests normal pairing and completes the displayed PIN challenge for the chosen protocol, typically Companion and/or AirPlay. It reads device information, features, power state and available now-playing state before choosing a command, then sends only the requested supported remote key or sleep/wake action; wake may also affect a connected display via HDMI-CEC. App launches take identifiers from app_list and launch the selected installed app; keyboard entry confirms text focus and sends my intended text through the supported keyboard API. The reported app is generally the now-playing app, not proof of the foreground app. Limits: play_url is not recommended on tvOS 26.6 (acceptance does not ensure playback); no UDP media streaming, account switching, screenshots, configuration bypasses or signed-in Mac dependency. Repository: https://github.com/facebookincubator/muse-gadget-sdk (the skill is the whole skills/gadget-apple-tv-4k/ folder at the pinned commit: SKILL.md only, 1 file) Pinned version: install the code at commit e6fe5174092702ffddae6f90759a38d55a4ebae1 exactly. Do not substitute a newer version. If this commit is unreachable, stop and tell me. 1. Clone https://github.com/facebookincubator/muse-gadget-sdk into a temporary folder, check out commit e6fe5174092702ffddae6f90759a38d55a4ebae1, and copy the skills/gadget-apple-tv-4k/ folder from that checkout. Then compare every file in the folder with the fingerprints recorded for this listing on 2026-10-22: [FINGERPRINTS] - SKILL.md: SHA-256 61933e156b86f1e4c3bee9c0be0fbce77faa18268ba03825ebbcc9fee811e2d4 If a file does not match, it changed since the listing was prepared: do not install it yet, tell me what you found and let me decide. 2. Read SKILL.md in full, and tell me in plain words: what the skill does when used, what it connects to, whether it reads or sends any personal information or credentials, and anything that seems unusual. Stop on any red flag and tell me before going further. Confirm these points from the files: - The skill folder holds 1 file only: SKILL.md (2,724 bytes). There is no script, no code and no configuration in it; at use time it works through a compatible pyatv client over Home Link TCP transport against my own Apple TV 4K (Companion and/or AirPlay services). It has no dependency on any other gadget skill in this lot. - Nothing is sent anywhere during installation itself; the only download at install time is the skill folder from GitHub at the pinned commit. No pairing is started, no PIN is requested and no device is contacted during installation. - At use time, exchanges go only to my local Apple TV 4K: pairing is the normal on-screen PIN flow I approve for each required protocol, the resulting credentials are stored securely, session encryption is retained, and credential storage is never printed. The skill expressly forbids loosening the TV's access settings as a workaround. - The skill does not recommend play_url on tvOS 26.6, and it does no UDP media streaming, account switching, screenshots or configuration bypasses, and it does not depend on a signed-in Mac. - Do not pair any device, do not ask for or set any credential, do not run any control, print, scan or playback action, and do not use the skill in any way during this install: Home Link setup, pairing and use are my decisions, later, when I actually ask for them. 3. When I say "yes, install", install it as a skill: copy the whole gadget-apple-tv-4k folder into the agent's skills directory, in a folder named exactly "gadget-apple-tv-4k", keeping its 1 file (SKILL.md at its root). The exact folder name matters: relative links between sibling gadget skills depend on these exact names. 4. Verify with no network calls: frontmatter valid (name: gadget-apple-tv-4k), the 1 file in place with matching fingerprint. Do not run anything and do not connect to any device to verify. 5. Report what was installed, where, and what I still need to do myself (for example: read ~/docs/devices/home_link.md in my Muse environment and follow its Home Link rules; have an Apple TV 4K already set up on my local network; and complete the normal on-screen PIN pairing myself for Companion and/or AirPlay when needed, with the resulting credentials stored securely — never by loosening the TV's access settings; using the skill is a separate step that only starts when I ask for it, and the use-time exchanges disclosed above happen only then). GitHub is optional: if I have a GitHub account or the gh CLI, you may use it; otherwise public access is fine. Never require it unless it's in the prerequisites above. Rules: don't touch anything outside the temp folder and the install target. If anything looks off, stop and ask me.
Saved to your recent installs. Find it anytime on /connect.
🔒 Security, provenance and what this touches
The install prompt below already includes the vetting steps: your agent follows the community checklist before installing anything with executable code. Want more?
Questions
How do I install a build?
Every product page includes a copy-paste install prompt. Paste it into your Muse and it sets the build up for you — no manual configuration.
Where does my money go?
Straight to the seller. Skill Harbor never processes payments: checkout happens on the seller’s own page, usually Stripe.
What does the ✓ next to a creator’s name mean?
It means we confirmed the identity of the person behind the listing. It says nothing about the code itself — always check a build before installing it.