Playnite Web MQTT Plugin
Overview
The Playnite Web MQTT plugin bridges your self-hosted Playnite Web instance and a local Playnite client so that you can trigger Playnite game actions from anywhere on your network. The plugin listens for those MQTT topics and executes the matching action inside Playnite allowing dashboards, voice assistants, or other tooling to remotely control your library. Combined with Playnite Web and an automation system such as Home Assistant, Playnite Web is transformed into your game library, home automation remote control. This article covers a recommended use case.
Requirements
Before installing the plugin, make sure you have the following pieces running:
A self-hosted Playnite Web instance.
A MQTT broker reachable from both Playnite Web and the machine running Playnite. You can re-use the same broker used by Playnite Web.
A webhook endpoint or lightweight service that relays Playnite Web's action webhooks into MQTT messages. This can be Home Assistant, Node-RED, or a short script built with the language of your choice.
Installing the plugin
Playnite Web MQTT is available to install directly from within Playnite. Simply open the extensions and browse for it under Generic extensions.
The MQTT plugin is a second, discreet Playnite extension to be installed in Playnite. Navigate to the latest Playnite Web release. Download the Playnite Web MQTT plugin. Import the plugin it into Playnite just like any other extension.
Download the desired
.pextfile.Open Playnite.
Drag the downloaded extension onto Playnite to install.
Configuring the Playnite extension
Open the plugin's settings page (Add-ons → Playnite Web MQTT) and review the two tabs:
Connection
Populate the connection tab with the credentials to connect to the MQTT broker.
Key notes:
Credentials are stored securely with Windows data protection. Saving either the username or password clears any cached token so that a new session can be negotiated.
Give each Playnite host a unique device identifier so that Playnite Web and Home Assistant can distinguish multiple PCs in your household.
Connecting Playnite Web to your automation stack
Playnite Web can be configured to emit a webhooks whenever a user requests a release to start, stop, or restart. Enable remote control by supplying a webhook URL in the Playnite Web user settings (Account → Settings). The description in the defaults clarifies that any fully qualified URL is acceptable and that events will be posted there.
Each mutation builds a JSON payload that contains the release identifier, title, cover art URL, library metadata, source, and platform. When a webhook URL is configured, Playnite Web sends the payload via HTTP POST to that endpoint. Forward this body to your MQTT broker to trigger the plugin.
A minimal forwarding script can parse the incoming request and publish the payload directly to MQTT. Most users wire this up inside an automation platform (for example, an HTTP-in → MQTT-out flow in Node-RED).
See Use Home Assistant as a Remote Control for Playnite Web for more details.
MQTT release control topics
Once the webhook payload reaches the broker, publish it to one of the following topics to execute the matching action inside Playnite:
Note the device name is the value configured in the Playnite Web MQTT extension settings.
Action | Topic | Sample payload | Description |
|---|---|---|---|
Start |
|
| Starts the release. If it is not installed, the plugin will kick off installation first; starting happens separately once the install completes. |
Stop |
|
| Attempts to gracefully stop the running game. If the process cannot be found, the plugin falls back to stopping the parent launcher (Steam, Epic, etc.). |
Restart |
|
| Issues a stop request and automatically queues a fresh start after a short delay. |
Install |
|
| Installs the game if it's not already installed. Otherwise, does nothing. |
Uninstall |
|
| Uninstalls the game. Note that some launchers may require administrator permissions to uninstall games. You may need to run Playnite Web as an administrator. |
Customize the prefix (game-room-gaming-pc in the examples above) to match the Playnite host that should handle the command. Use the identifiers reported by your automation tooling so that multi-PC homes can scope commands correctly.
Example automation flow
The following flow illustrates how you can launch games on a LAN gaming PC from a lightweight dashboard:
Configure Playnite Web to send webhooks to a Node-RED endpoint on your home server.
Parse the
StartReleaseRequestedpayload in Node-RED and publish it toplaynite/game-room-gaming-pc/request/release/startwith the same JSON body.Install the MQTT plugin on the gaming PC running Playnite and point it to your broker.
When you click Play in the Playnite Web UI, the gaming PC receives the MQTT message and launches the game locally. Subsequent Stop or Restart actions reuse the same wiring with their respective topics.
Because the Playnite Web plugin also updates metadata back to Playnite Web, the web interface quickly reflects the new running state after each action.
Troubleshooting
The Play button does nothing – Confirm that the webhook URL is set and reachable from Playnite Web, and that your relay forwards the body to the MQTT topic.
Messages arrive but no action happens – Verify that the Playnite plugin is connected (check the add-on log) and that the topic prefix matches the host name you configured.
Games stay installed after uninstall requests – Some launchers require elevated privileges to uninstall. Run Playnite as an administrator when testing uninstall flows.
Library metadata looks outdated – Trigger a manual sync from the Playnite main menu to resend library data through GraphQL.