MQTT Explorers & Clients
MQTT Explorer, MQTTX, mosquitto_sub — see and poke your MQTT topics.
The "what is actually on my bus right now" tools. For the broker itself see MQTT for Home; for the broader broker landscape see Message Brokers.
Desktop GUIs
- ★ MQTT Explorer — the cult favorite; tree-style UI that auto-discovers your topic hierarchy and shows live values. Open-source, cross-platform desktop app. The single best tool for "what is Zigbee2MQTT publishing right now?"
- ★ MQTTX (EMQX) — modern, polished GUI; client + load-test + script panes; supports MQTT 5 fully; cross-platform. Great for testing MQTT 5 features (user properties, request/response).
- MQTT.fx — older Java GUI; Softblade; was the standard for years. Free + paid tiers. Less recommended in 2026.
Web / browser
- ★ MQTTX Web — same MQTTX experience in the browser; no install. Connects to brokers' WebSocket endpoint.
- HiveMQ WebSocket Client — quick browser tool from HiveMQ; fine for one-off tests.
- EMQX Dashboard — built into EMQX; subscribe / publish from the broker's own UI.
CLI
- ★
mosquitto_sub/mosquitto_pub— ships with Mosquitto; the universal language of "is this topic alive."mosquitto_sub -h broker -t '#' -v— fire hose of every message.mosquitto_pub -h broker -t home/test -m hello— publish.
- ★
mqttui— Rust TUI; cross-platform; single binary; "MQTT Explorer in a terminal." Great over SSH. mqtt-cli(HiveMQ) — Java; full-featured; supports MQTT 5.mqtt-spy— old Java tool; archived; still works.
Programmatic
paho-mqtt— Eclipse Paho; the reference C / Python / Java / JS / Go client.MQTT.js— the standard Node.js client; battle-tested.gmqtt/asyncio-mqtt— modern async Python.rumqttc— Rust async client.async-mqtt— C++ async client.
Hosted "send me a message" services
- Beebotte — hosted MQTT-as-a-service with a free tier; useful for "I want a public broker for a tutorial."
- HiveMQ Public Broker (
broker.hivemq.com) — free public broker for testing only. Don't put real data on it. - EMQX Public Broker (
broker.emqx.io) — same, EMQX-flavored.
Patterns to adopt
- ★ Always have one window with
mosquitto_sub -t '#' -vopen when debugging an integration. You'll see the answer before you finish writing the question. - Use retained messages for "current state" topics so a fresh subscriber gets immediate context.
- Use Last Will and Testament (LWT) so devices flip an
online/offlinetopic on disconnect. ESPHome / Tasmota / Z2M all set this for you. - Topic naming:
<vendor>/<location>/<device>/<thing>reads well in MQTT Explorer's tree.
Pick this if…
- Default desktop GUI: MQTT Explorer.
- MQTT 5 / load test / scripting: MQTTX.
- Over SSH / no GUI:
mqttuiormosquitto_sub. - Quick sanity check from browser: HiveMQ WebSocket Client or MQTTX Web.
- Need a free hosted broker for a demo: HiveMQ public broker (testing only).