Open-source project
nickustinov/itsytv-macos avatar
nickustinov/itsytv-macos

itsytv gives the Mac the remote Apple never built

The missing Apple TV remote app for macOS

645 stars27 forksSwiftMIT

At a glance

What is it?
itsytv is an MIT licensed macOS menu bar app that controls an Apple TV by speaking the same local network protocol the Siri Remote uses, and its distinguishing feature is that it is scriptable through AppleScript and Shortcuts, so the television can be driven by a hotkey, a timer or a calendar event.
Who is it for?
itsytv fits a Mac user who has an Apple TV on the same network and misses the physical remote, especially anyone who wants the television to respond to a hotkey, a Shortcuts routine or a bedtime timer instead of a click. It does not fit an older setup, since the Apple TV must be a fourth generation or later on tvOS 15 or newer, and it does not fit a Linux or Windows user, since the app is macOS only.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A floating panel instead of a physical remote

macOS has no built-in Apple TV remote, and itsytv fills that gap as a native macOS menu bar app. The feature list is short enough to summarise in one line each.

The menu bar remote is a compact floating panel. It carries a circular d-pad with directional navigation plus select, home, menu or back, and play or pause. Keyboard navigation maps the arrow keys, Return, Backspace, Escape and Space onto the remote buttons. Text input types directly into Apple TV text fields with a live keyboard, which is the feature that separates a usable remote from a toy.

Then there is now playing, with artwork, title, artist, a progress bar and playback controls, and an app launcher, a grid of installed apps with icons fetched from the App Store that can be dragged to reorder. Multiple devices are supported, so you can pair and switch between several Apple TVs, and the panel remembers where you placed it for each one.

The smaller details are the ones that show the app has been used rather than designed on paper. Global hotkeys can be assigned to open the remote instantly for a specific Apple TV. Launch at login is optional. An unpair action removes the pairing credentials from the panel menu. And the app lives in the menu bar rather than the Dock, which is the cause of the most common confusion for new users, as the troubleshooting section explains.

The same protocol the Siri Remote speaks

The technical claim in the README is the one that distinguishes this from the field of remote apps: itsytv speaks Apple's native MediaRemote and Companion protocol over the local network, the same one the Siri Remote uses, so input is instant with no cloud service or polling in between.

That has three consequences. Latency is the latency of the local network rather than of a round trip through a vendor's server. Nothing about your remote activity passes through a third party, and the FAQ states that the connection is end-to-end encrypted and that the pairing credentials are stored in the macOS Keychain.

Pairing works the way the physical remote does, and the FAQ is explicit that you do not need the physical Siri Remote. The Apple TV shows a four-digit PIN on the TV screen and you type it into the app.

There is a hardware floor. The FAQ says it works with Apple TV fourth generation or later running tvOS 15 or newer, on the same local network as the Mac, and that older Apple TVs do not support the protocol. That is a real constraint, since the whole approach depends on the device implementing the same protocol the remote uses.

Three ways to install, and two different prices

Installation on the Mac is a Homebrew cask:

bash
brew install --cask itsytv

Or you can download the latest DMG from the GitHub releases. There is also a Mac App Store version, and the pricing model is worth reading carefully because it is not the same on both platforms. On the Mac the app is free via Homebrew or the DMG, MIT licensed and open source. The Mac App Store version is a one-time $4.99 universal purchase that also covers iPhone and iPad, and the FAQ states there is no subscription, no ads and no in-app purchases anywhere.

The technical baseline is in the badges rather than the prose: Swift 5.10 and macOS 14 or later, which is the Sonoma generation.

the distinction between the free MIT build and the paid store build is not spelled out in the README, and it is the kind of detail a reader will want before deciding which to install. What is clear is that the free path is a Homebrew cask or a GitHub DMG, and that the source is readable, which the FAQ makes a point of in answer to the question of how this differs from other remote apps.

AppleScript and Shortcuts turn the remote into an interface

The feature that separates itsytv from a pure remote is that the Apple TV becomes scriptable. The app exposes AppleScript commands, so it can be driven from Shortcuts, Keyboard Maestro, Hammerspoon, Raycast, or a plain shell:

bash
osascript -e 'tell application "itsytv" to pause'
osascript -e 'tell application "itsytv" to play'

Both commands are no-ops when nothing is playing, so they are safe to fire blindly, and the README gives that as a design property rather than a caveat. That matters for automation, where the alternative is a script that has to query state before it acts.

The suggested uses make the point. A Shortcuts automation that pauses the Apple TV when a calendar meeting starts, using the Run AppleScript action. A Hammerspoon or Keyboard Maestro hotkey that toggles playback without touching a remote. A cron job or at timer that pauses playback at bedtime.

There is also a Shortcuts action that opens the remote panel for a specific Apple TV, which the README suggests is handy on a Stream Deck. So the app offers two levels of automation: commands for the transport controls, and a way to summon the whole panel on demand.

Pairing failures are an Apple TV settings problem

The troubleshooting section is the most useful part of the documentation, because the failure modes are all on the Apple TV side rather than in the app.

If a pairing request produces no PIN on the TV screen, the Apple TV is likely restricting which devices can connect. The documented fix has five steps. Open Settings, then AirPlay and Apple Home on the Apple TV. Set Allow access to Anyone on the same network. Set Require Password to Off, noting that it can be turned back on after pairing is completed. Then go to Settings, General, Restrictions, and set both AirPlay Settings and Remote App Pairing to Allow.

The note after the list is the part to remember: the settings in steps two and five need to stay on this value for itsytv to maintain a connection to your Apple TV. In other words, a successful pairing is not a one-time event, and the permissions have to stay permissive afterwards.

The second failure mode is the same root cause. If the remote panel closes on its own shortly after connecting, the Apple TV's AirPlay access setting is likely set to Only people sharing this home, and the fix is the same Allow access change under AirPlay and Apple Home.

That is the tradeoff of speaking the local protocol directly: the Apple TV treats the app as a remote on the local network, and the network access settings that govern that are the ones to get right.

The notch can hide the icon without any warning

The third troubleshooting entry is about macOS rather than the Apple TV, and it is the kind of bug that looks like a broken app.

Itsytv is a menu bar app, so it lives in the top-right area of the screen as a small TV icon and not in the Dock. On MacBooks with a notch, macOS hides menu bar icons that do not fit behind the notch, silently and with no warning. If the menu bar is crowded, the itsytv icon may be present and invisible.

The documented fix is to hold Cmd and drag the icons you do not need off the menu bar, and then, once itsytv appears, Cmd-drag it to the right so that it stays visible.

This one entry explains a support pattern: a user launching the app, seeing nothing, and concluding it failed to start. The failure is in the menu bar layout, and the app is running correctly underneath.

The Mac App Store version of the app also exists, and the FAQ notes that the app is a universal purchase covering the Mac, iPhone and iPad, so the same account covers the iOS remote, which the README describes as offering the same core experience plus TMDB lookups for what is playing, with poster art, ratings and details, and an ergonomic design for left- and right-handed use.

MIT on the Mac, a paid universal purchase elsewhere

The licence on the Mac side is MIT, with the LICENSE file at the repository root, and the app is free there. The App Store build is the paid one, at a one-time $4.99 that also covers the iPhone and iPad versions, and the FAQ is explicit that there is no subscription, no ads and no in-app purchases anywhere.

The README also points at a sibling project, Itsyhome, a free macOS menu bar app for controlling HomeKit devices, covering lights, cameras, thermostats, locks, scenes and what it describes as 18 or more accessory types without opening the Home app. Two small menu bar utilities for a home and a television, from the same author, is a reasonable thing for a user to install together.

On the engineering side the repository is a Swift project with a project.yml, which is the configuration format for XcodeGen, plus an itsytv/ source directory, a scripts/ directory, a CHANGELOG.md and an ISSUES.md. The releases are v1.6.2 published on 2026-10-13, v1.6.1 on 2026-09-01 and v1.6.0 on 2026-05-25, and the last push was on 2026-10-13, the same day as the newest release, so the project is actively worked on.

One capability is worth flagging as conditional. The FAQ says the app can change the TV volume when the Apple TV controls volume over HDMI-CEC, in the Apple TV settings under Remotes and Devices, Volume Control, and that learned infrared volume codes only work from the physical remote, a sentence the README cuts off.

Editorial conclusion

itsytv fits a Mac user who has an Apple TV on the same network and misses the physical remote, especially anyone who wants the television to respond to a hotkey, a Shortcuts routine or a bedtime timer instead of a click. It does not fit an older setup, since the Apple TV must be a fourth generation or later on tvOS 15 or newer, and it does not fit a Linux or Windows user, since the app is macOS only. Before pairing, set the Apple TV's AirPlay and Remote App Pairing permissions to allow, because the documentation makes that the root cause of both pairing failures and the remote closing on its own.

Frequently asked questions

How do I install itsytv on macOS?

Install the Homebrew cask with brew install --cask itsytv, or download the latest DMG from the GitHub releases. The Mac App Store version is also available as a one-time $4.99 universal purchase covering Mac, iPhone and iPad.

Which Apple TVs does itsytv support?

Apple TV fourth generation or later running tvOS 15 or newer, on the same local network as the Mac. Older Apple TVs do not support the protocol the app speaks.

Do I need the physical Siri Remote to pair?

No. The Apple TV shows a four-digit PIN on the TV screen and you type it into the app. The credentials are stored in the macOS Keychain and the connection is end-to-end encrypted.

Why does pairing fail with no PIN code on the screen?

The Apple TV is restricting which devices can connect. Set Allow access to Anyone on the same network under AirPlay and Apple Home, and set both AirPlay Settings and Remote App Pairing to Allow under General, Restrictions. Those settings need to stay that way to maintain the connection.

Can I control the Apple TV with AppleScript or Shortcuts?

Yes. The app exposes AppleScript commands, so osascript -e 'tell application "itsytv" to pause' works, and both play and pause are no-ops when nothing is playing. There is also a Shortcuts action to open the remote panel for a specific Apple TV.

Official sources

  1. License: MIT
  2. nickustinov/itsytv-macos on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nickustinov-itsytv-macos.svg)](https://hysenlabs.com/projects/nickustinov-itsytv-macos)

Was this useful?