HDMI CEC control apps on Windows, macOS, and Linux

HDMI 2.2 is coming with 96 Gbps bandwidth and Ultra96 mode, but the feature most home theater PCs still need is HDMI CEC, the twenty-year-old spec that lets any device on the HDMI bus turn on the TV, switch inputs, and forward remote commands. Desktop GPUs rarely expose CEC natively. These best apps for HDMI CEC control on desktop cover the ways to bolt CEC onto a PC, on Windows, macOS, and Linux, so pressing play on the couch also wakes the display.

What to look for in a CEC controller

Quick comparison

App Best for Free plan Starting price Rating
libCEC The engine underneath everything Fully free $0 Baseline library
Kodi with CEC add-on Media center that just works Fully free $0 20+ years of dev
Home Assistant Whole-home automation Fully free (self-hosted) $0 The everything platform
Pulse-Eight USB CEC adapter software Turnkey adapter Bundled $59 (adapter) The reference implementation
cec-utils Linux one-shot commands Free $0 For scripts
USB-CEC OSS adapter software DIY adapter fans Free $15 (adapter parts) Open hardware pick
IR Toolbox Non-CEC TV fallback Free trial $19.99 (one-time) For TVs without CEC

The apps

1. libCEC — best foundation library

libCEC from Pulse-Eight is the C++ library every other app on this list wraps. Under the hood: talk to a Pulse-Eight adapter, a USB CEC dongle, or a compatible GPU output, and expose a clean API for power, source select, volume, and IR passthrough.

Where it falls short: it is a library, not a user app. On its own it is a cec-client CLI and a set of headers.

Pricing:

Platforms: Windows, macOS, Linux. Download: Pulse-Eight libCEC Bottom line: if you build anything CEC-related, this is what you build on.

2. Kodi with CEC add-on — best media center

Kodi treats CEC as a first-class citizen. With a Pulse-Eight adapter plugged in, launching Kodi turns on the TV, switches to the correct HDMI input, and captures every remote button press as a Kodi keymap event. On Raspberry Pi 4 and 5 the built-in CEC works without any adapter.

Where it falls short: the CEC add-on’s automation is coupled to Kodi playback. Turning the TV off when a Netflix web tab closes needs Home Assistant on top.

Pricing:

Platforms: Windows, macOS, Linux (native). Download: Kodi Bottom line: the easiest way to make CEC “just work” if a media library is your use case.

3. Home Assistant — best whole-home automation

Home Assistant has an official HDMI CEC integration that exposes every attached device (TV, receiver, PlayStation) as a switch. Automation rules can fire on any state, so “kitchen motion after sundown” can turn on the TV.

Where it falls short: needs a Pulse-Eight adapter (or Home Assistant OS on a Pi with the CEC pins wired). Setup takes an afternoon.

Pricing:

Platforms: Linux (Home Assistant OS on Pi or VM), Docker on Windows/macOS. Download: Home Assistant Bottom line: if you already run Home Assistant, adding CEC is the shortest route to voice-triggered TV control.

4. Pulse-Eight USB CEC adapter software — best turnkey option

Pulse-Eight sells the USB CEC adapter that every other app on this list assumes you own. Their own bundled software includes a Windows CEC control panel, a Kodi bridge, and firmware update tooling.

Where it falls short: the adapter itself is $59 and only makes sense if your PC’s HDMI output has no native CEC.

Pricing:

Platforms: Windows, macOS, Linux with libCEC. Download: Pulse-Eight adapter store Bottom line: the reference hardware and the safest choice if you value known-good over DIY.

5. cec-utils — best Linux one-shot commands

cec-utils is the Debian/Ubuntu package that installs cec-client and cec-ctl. Scriptable, quick, and enough for cron-driven power on/off. Combine with systemd to fire a CEC command at boot.

Where it falls short: CLI-only. Not designed for real-time IR passthrough.

Pricing:

Platforms: Linux (Debian, Ubuntu, Arch, Fedora). Download: apt install cec-utils on Debian/Ubuntu; dnf install libcec-tools on Fedora. Bottom line: the tool for a Bash-scripted home theater PC.

6. USB-CEC open-hardware adapter software — best DIY option

USB-CEC OSS adapter projects (KrupaCEC, HDMI-CEC-to-USB-Serial) put the Pulse-Eight adapter idea into a Raspberry Pi Pico or an Arduino for parts costing under $15. Firmware and control software ship on GitHub under MIT.

Where it falls short: you build the adapter. Compatibility with libCEC is per-project and varies with firmware.

Pricing:

Platforms: Windows, macOS, Linux via libCEC. Download: KrupaCEC project on GitHub Bottom line: the pick if soldering an HDMI breakout beats spending $59 on a Pulse-Eight.

7. IR Toolbox — best fallback for TVs without CEC

IR Toolbox takes over when a TV lacks CEC or a discrete GPU refuses to expose it. Pair it with a USB IR blaster and it fires the same remote codes a physical remote would. Not the same as CEC, but achieves the “turn on the TV from the PC” outcome.

Where it falls short: IR needs line of sight to the TV. Slower and less reliable than CEC. No back-channel status.

Pricing:

Platforms: Windows. Download: IR Toolbox Bottom line: the option when CEC is not available and the TV has been in the room for a decade.

How to pick the right one

If you run a Kodi HTPC on a Raspberry Pi: Kodi with built-in CEC and nothing else. If you run a PC HTPC on Intel or AMD without native CEC: Pulse-Eight USB adapter plus libCEC or Kodi. If Home Assistant already runs your house: Home Assistant CEC integration and hook it into your automations. If you script everything: cec-utils on Linux. If you want the cheapest DIY setup: an open-hardware USB-CEC adapter. If your TV predates CEC: IR Toolbox on Windows.

FAQ

Do I need a special adapter to use CEC from my PC?

Almost always yes. Most desktop GPUs do not expose CEC on their HDMI outputs. A Pulse-Eight adapter or a compatible Raspberry Pi is the bridge.

Do Nvidia and AMD GPUs support CEC?

Generally no. A handful of laptops and integrated graphics chips do (some Intel NUC models, some ThinkPad docks), but discrete desktop cards from Nvidia and AMD do not.

Does the Raspberry Pi support CEC without an adapter?

Yes. Every Raspberry Pi HDMI output speaks CEC. Kodi on Raspberry Pi is the easiest zero-hardware CEC setup.

What is the best Linux CEC app?

Kodi if you want a media center, cec-utils if you want scripting, Home Assistant if you want automation. All three sit on libCEC.

Will HDMI 2.2 change any of this?

Only bandwidth and cable specs. CEC is a low-speed control channel on pin 13 that has been part of HDMI since 1.2a and does not change with the 2.2 release.