Your TVs, on the same schedule as your Mac.
On when you connect your display, off when you disconnect. No remote, no app switching, no thinking about it.
- LG webOS
- Roku TV
- Sony Bravia
- Samsung Tizen

Automation
It follows the display, not a schedule.
TV Companion watches for HDMI display changes and, optionally, Mac sleep and wake. Connect the display and the right TVs power on and switch to their input. Disconnect and they turn back off.
- Debounced display events, no false triggers
- Retries while the TV boots, re-sending Wake-on-LAN
- Follows IP changes by matching the TV MAC

Setup once
Pair a TV once, then forget it.
A first SSDP scan finds your TVs. Accept the pairing prompt on screen and the client key is saved to the Keychain. From then on each TV has a card with a status dot, a live on/off badge, and inline controls.
- Per-TV power, input, volume, and screen off
- Add a TV by IP if discovery misses it
- Credentials live in the login Keychain, never in config

Looks right
Fits your Mac, light or dark.
The panel is a native macOS surface. It tracks the system appearance, reads cleanly at a glance, and never opens a window you have to manage.

$ open ~/screenshots
A closer look
$ man tv-companion
Everything it handles
Small footprint, careful defaults, and no surprises.
-
Menu bar only
No Dock icon. It lives in the menu bar and stays out of the way after the first pairing.
-
Launch at login
Starts with your Mac through SMAppService, ready before the first HDMI connect.
-
Auto-discovery
Finds TVs on your network over SSDP and refreshes their IP and MAC on every scan.
-
Wake-on-LAN
Sends magic packets and retries while the TV boots, then switches to the right HDMI input.
-
Input guard
Only powers a TV off when it is still on your Mac's input, so it never cuts off other viewing.
-
All On / All Off
Flip every configured TV at once, or drive each one from its own card.
-
Native protocols
Each TV is driven in parallel over its own protocol: LG SSAP, Roku ECP, Sony Bravia, Samsung Tizen.
-
Clear feedback
macOS notifications report each result, and every card keeps its last error until the next success.
$ tv-companion --help
Before you install
Which TVs does it work with?
LG webOS, Roku TV, Sony Bravia, and Samsung Tizen. Each is driven over its own native protocol rather than a universal remote API, so power, input, and volume behave the way the TV expects.
Does it need anything installed on the TV?
No. Pairing happens once over the network, and the client key is stored in your login Keychain. The TV keeps its stock firmware.
Will it turn a TV off while someone else is watching?
Not by default. A TV is only powered off while it is still on your Mac's input, so switching the TV to another source takes it out of scope.
Does it run in the Dock?
No. It is menu bar only, starts at login through SMAppService, and opens no windows you have to manage.
More detail on the support page.
Set it up once. Never touch it again.
Quiet by design, and out of your way.