The Apple TV remote, on your Mac.

A tiny menu-bar app that controls any Apple TV on your network — from the keyboard, the trackpad, or a faithful on-screen replica of the Siri Remote.

Download for macOS Setup & pairing
Free · Requires macOS 14+ · Apple silicon & Intel
Apple TV Remote app showing the on-screen Siri Remote replica

What it does

Lives in your menu bar

Click the icon, the remote drops down. Click outside, it disappears. Pin it if you want it sticky.

Two-finger swipe to navigate

Swipe anywhere on the remote to move focus on tvOS. Two-finger tap is select; long-press is back.

Long-press buttons

Hold the touchpad center for context menus, hold TV for the app switcher, hold power to sleep.

Resizable

Drag any corner to scale the remote up or down. Your size is remembered.

Volume & mute

Volume +/− work over Companion. Mute toggles by remembering and restoring your level.

Multiple Apple TVs

Switch between TVs from the menu — each pair-once and remember. Drag to move the panel anywhere.

Setup

Three short steps: install pyatv, install the app, pair from the in-app Settings window.

1

Install pyatv

The app uses pyatv under the hood for Apple TV protocol support. Install via pipx so it gets its own isolated Python environment:

brew install pipx
pipx ensurepath
pipx install pyatv

Reopen Terminal afterward so ~/.local/bin is on your PATH.

2

Download & launch the app

Grab the latest DMG below. Drag Apple TV Remote to your Applications folder, then launch it. The app lives in the menu bar — click the icon to summon the remote.

The first time the app discovers Apple TVs, macOS will ask for permission to access your local network. Allow it.

3

Pair from Settings

On first launch the remote shows a No Apple TV paired screen. Click Open Settings (or click the bolt icon → Settings…) and choose Pair new Apple TV….

Pick your TV from the discovered list, then type the 4-digit PIN that appears on the screen. That's it — credentials are stored locally for every command going forward, and your TV shows up in the bottom toolbar's source picker.

Download

Apple TV Remote 1.0

Universal binary · macOS 14 Sonoma or later

Download .dmg

Signed and notarized by Apple. Release notes

Compatibility

macOS
14 Sonoma or later
Mac
Apple silicon & Intel
Apple TV
HD, 4K (any gen)
tvOS
13 or later
Network
Same Wi-Fi / LAN
Dependency
pyatv (Python)

FAQ

Why do I need to install pyatv separately?

The app uses pyatv (an open-source Python library) to speak the protocols the Apple TV expects. Bundling Python inside a Mac app would balloon the download to 30+ MB and complicate updates. Keeping pyatv external means you also get its updates independently — useful when Apple changes things.

Is this on the App Store?

No. The App Store sandbox doesn't let apps run external binaries like atvremote, so distributing it through the Store would require rewriting the entire Companion protocol stack in Swift. Maybe one day.

Why does macOS prompt for "Local Network" permission?

To find your Apple TV the app uses Bonjour/mDNS, which counts as local network access on macOS 15+. The first time you trigger a scan you'll see a one-time prompt. You can later toggle it in System Settings → Privacy & Security → Local Network.

Can it wake or sleep the TV?

Yes — tap the silver power button to wake, long-press it to sleep. (Both go through pyatv's power.turn_on / power.turn_off, which work for most Apple TV configurations.)

Does mute really mute?

Sort of. tvOS doesn't expose a real mute over the Companion protocol, so the app fakes it by ramping the volume to 0 and remembering your previous level so it can restore. If you change the volume by other means while "muted", the restore will land at the level we remembered, not your new one.

Where does the app store its settings?

App preferences (size, pin state, swipe mode) live in macOS UserDefaults under bundle ID N8.AppleTV. Pyatv credentials live in ~/.pyatv/storage.json.