
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
- Adapter or driver. Almost every solution below needs either a Pulse-Eight USB CEC adapter or a GPU that speaks CEC natively (rare on discrete cards).
- Home theater integration. If you already run Kodi, Jellyfin, or Home Assistant, pick a controller that hooks into what you use.
- Automation triggers. The best CEC setups turn on the TV based on a media event, not a manual button.
- Cross-platform library. libCEC underlies most implementations; check that whatever you install exposes it.
- Remote passthrough. CEC’s second job is receiving TV-remote button presses on the PC. Look for volume up/down and directional keys as first-class events.
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:
- Free: LGPL 2.
- Paid: none for the library itself.
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:
- Free: GPL.
- Paid: none.
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:
- Free: Apache 2.
- Paid: none for self-hosted; Nabu Casa cloud starts at $6.50/mo for remote access.
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:
- Free: bundled control software.
- Paid: USB CEC adapter at $59.
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:
- Free: LGPL 2.
- Paid: none.
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:
- Free: firmware and software.
- Paid: adapter parts, about $12-15 in Pico plus HDMI breakout.
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:
- Free: 14-day trial.
- Paid: $19.99 (one-time).
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.