RetroArch — monitor & control RetroArch from Home Assistant

RetroArch for Home Assistant

I built a custom integration that lets Home Assistant talk to RetroArch over its built-in UDP Network Control Interface. You get the running game and system, a media
player, a pile of control buttons, optimistic switches, live in-game RAM values, box art, and LAN auto-discovery — all local, no cloud, no account.

:link: GitHub: GitHub - hudsonbrendon/ha-retroarch: Home Assistant custom integration for RetroArch over its UDP Network Control Interface — media_player, sensors, configurable RAM sensors, buttons, switches, services, and LAN auto-discovery. · GitHub

What it does

  • :video_game: Media player — the running game as the media title, the system/core as the app name, with play/pause/stop and volume.
  • :framed_picture: Box art — pulls the game's cover from the libretro thumbnail server (with an override in the options if it guesses the system wrong).
  • :bar_chart: Sensors — status, current game, system/core, content CRC32, RetroArch version, plus video/audio/menu drivers.
  • :brain: Configurable RAM sensors — read live in-game values (lives, score, HP…) by memory address.
  • :radio_button: Binary sensors — playing, paused, content loaded.
  • :joystick: 34 buttons — reset, save/load state, state slot ±, screenshot, fast forward, rewind, slow motion, disk eject/next/prev, shaders, cheats, AI service, quit, and
    more.
  • :level_slider: Switches — fast forward, slow motion, mute, fullscreen, pause (optimistic, since the protocol only exposes toggles).
  • :hammer_and_wrench: Services — send any raw command, read/write core memory, show an on-screen message, load a state slot / shader / core.
  • :mag: Auto-discovery — finds RetroArch on your LAN with a UDP broadcast probe; manual host/port entry as a fallback.
  • :globe_with_meridians: Translations — English, Português (Brasil), Español.
  • :house: Local polling — talks straight to RetroArch on your network.

Requirements

Enable RetroArch's network commands — Settings → Network → Network Commands (port 55355), or in retroarch.cfg:

network_cmd_enable = "true"
network_cmd_port = "55355"

Then restart RetroArch. Auto-discovery uses a LAN broadcast, so it works best when HA and RetroArch are on the same subnet.

Install (HACS)

It's a custom repository for now:

  1. HACS → ⋮ (top right) → Custom repositories, add https://github.com/hudsonbrendon/ha-retroarch as an Integration.
  2. Install RetroArch and restart Home Assistant.
  3. Settings → Devices & Services → Add Integration → RetroArch — let it scan the network, or type the host/port.

You can change the host/port later via Configure (no need to remove the integration), and add RAM sensors / tweak box art there too.

Hope it's handy for other retro folks running RetroArch next to Home Assistant. :slight_smile:

3 Likes