An MQTT explorer desktop app shows what a terminal cannot: the whole topic tree at once, which branches are busy, what each retained value is and how a payload changed over time. This guide compares the main desktop explorers, explains which features actually matter when you debug a real system, and walks through connecting one to broker.connectmq.com with a seeded topic tree so you can evaluate them yourself.
Why Use a Desktop Explorer Instead of the CLI
Command-line tools are perfect for scripts and quick checks, and we compare them in MQTT CLI tools. But they show messages as a stream. When a system has hundreds of topics, a stream is hard to reason about. A desktop explorer turns that stream into a structure:
- A tree, not a log. You see
factory1/line1/cnc1/telemetryas a branch with siblings, so naming mistakes likeLine1vsline1jump out. - Latest value per topic. Clicking a node shows its current (often retained) value without waiting.
- History and diffs. Many explorers keep recent messages per topic, so you can see what changed between two payloads.
- Safe publishing. Saved payloads, JSON formatting and a clear retain checkbox reduce the chance of publishing something wrong to production.
- Multiple connections. Switch between a local broker, a staging broker and production without retyping credentials.
What to Evaluate in an MQTT Explorer Desktop App
Use this checklist when trying any explorer:
- Protocol support: MQTT 3.1.1 and 5.0, and visibility of MQTT 5 properties such as user properties, content type and message expiry.
- Transport options: TCP, TLS, WebSocket and secure WebSocket, with a field for the WebSocket path (for example
/mqtt). - TLS handling: uses the system trust store, or lets you add a CA file; a clear error message when the certificate fails.
- Topic tree performance: stays responsive when you subscribe to
#on a busy broker. - Payload rendering: pretty-printed JSON, hex view for binary, and ideally decoding for formats like Sparkplug B.
- Retained message management: see which topics are retained and delete them by publishing an empty retained payload.
- Publishing ergonomics: saved messages, QoS and retain controls, MQTT 5 properties.
- Credential storage: whether passwords are stored encrypted or in plain text config files.
- Platform coverage: Windows, macOS and Linux builds for your team.
- License and maintenance: open source, free or commercial, and how actively it is updated.
The Main Desktop Explorers Compared
| App | License | Strength | Consider |
|---|---|---|---|
| MQTT Explorer | Open source | Excellent hierarchical topic tree with message counts, payload history, diffs and numeric charts | Built for browsing; publishing is basic |
| MQTTX (desktop) | Open source | Chat-style view per connection, strong MQTT 5 support, saved connections, scripting | Stream-oriented; the tree view is less central |
| MQTT.fx | Commercial | Long-standing tool familiar to many engineers | Licensing changed over time; check current terms |
| ConnectMQ Desktop MQTT explorer | Vendor tool | Browse topics, publish test messages and inspect payloads on any MQTT broker | Newer tool; pairs well with the web portal |
MQTT Explorer
MQTT Explorer is the tool many people mean when they say "MQTT explorer". It subscribes broadly (by default to # and $SYS/#) and renders everything as a collapsible tree, with counters showing how many messages arrived under each branch. Selecting a topic shows the latest payload, a history of recent values and a diff against the previous message; numeric values can be plotted. For understanding an unfamiliar system, this is often the fastest way in.
Be careful with the default # subscription on large or shared brokers. On the public broker, subscribe only to your own prefix to stay within the limit of 10 subscriptions per client and avoid flooding the app with other users' traffic.
MQTTX Desktop
MQTTX presents each connection like a chat: messages you send on one side, messages received on the other, filterable by topic. It is very good for interactive request-and-response testing, MQTT 5 properties and keeping a library of connections. If your work is mostly "send a command, watch the reply", MQTTX feels natural.
MQTT.fx
MQTT.fx was the default Java-based desktop client for years. Its licensing model has changed, so check the current terms before standardizing on it for a team.
ConnectMQ Desktop MQTT Explorer
This explorer ships alongside a VS Code MQTT extension. It browses topics, publishes test payloads and inspects messages, and it works with any standards-compliant broker, not only its own. If your devices already connect to a ConnectMQ broker, it is a convenient companion to the portal: use the desktop app while developing locally, and the portal's live topic explorer and in-browser MQTT client when you are away from your machine.
Hands-On: Seed a Topic Tree and Explore It
To compare explorers fairly, give them the same data. The commands below create a small, realistic tree on the public broker under a unique prefix. Replace ex4m with your own random string, and remember the public area is visible to everyone.
P="connectmq/demo/ex4m"
H="-h broker.connectmq.com -p 1883 -i seed-ex4m"
mosquitto_pub $H -r -t "$P/plant1/line1/cnc1/status" -m "running"
mosquitto_pub $H -r -t "$P/plant1/line1/cnc1/telemetry" -m '{"spindle_rpm": 8200, "temp_c": 41.5}'
mosquitto_pub $H -r -t "$P/plant1/line1/robot1/status" -m "idle"
mosquitto_pub $H -r -t "$P/plant1/line2/furnace1/telemetry" -m '{"temp_c": 812, "setpoint_c": 820}'
mosquitto_pub $H -r -t "$P/plant1/utilities/tank1/level" -m "67.2"
Then add a live, changing value so history and charts have something to show:
for i in $(seq 1 60); do
mosquitto_pub -h broker.connectmq.com -p 1883 -i seed-live-ex4m \
-t "connectmq/demo/ex4m/plant1/utilities/tank1/level" -m "$((60 + RANDOM % 15)).$((RANDOM % 10))"
sleep 1
done
The deepest topic here has 7 levels, within the public broker's limit of 8.
Connection Settings
Use these settings in any explorer:
| Field | Public broker (testing) | Your private broker |
|---|---|---|
| Host | broker.connectmq.com |
Your broker host from the portal |
| Port / protocol | 1883 TCP, or 8883 with TLS on | 8883 with TLS (recommended) |
| WebSocket | 8083 (ws), 8084 (wss), path /mqtt |
Same ports and path |
| Client ID | Any unique, non-empty value | The client ID generated for your credentials |
| Username / password | Empty | YOUR_USERNAME / YOUR_PASSWORD |
| Subscription | connectmq/demo/ex4m/# |
# or your own root |
What to Look For
- Expand
plant1and check that the hierarchy matches the plan. In real projects, this is where you discover devices that publish toPlant1or put the device ID at the wrong level. - Select
tank1/leveland watch the history while the loop runs. Explorers with charts plot it directly. - Select
furnace1/telemetryand confirm the JSON is pretty-printed. - Delete a retained value: publish an empty payload with retain set to
cnc1/status. The node should disappear (or show empty) for new subscribers. - Disconnect and reconnect. Retained topics reappear instantly; non-retained ones wait for new messages. This is the quickest way to learn which of your topics are retained.
A consistent hierarchy matters more as systems grow. The ISA-95 style used above (site, area, line, cell) is the backbone of a Unified Namespace; read MQTT Sparkplug B and Unified Namespace for the reasoning behind it.
Troubleshooting Desktop Explorers
- Connects over TCP but not TLS: the app may not use the operating system trust store. Add the ISRG Root X1 certificate (Let's Encrypt) as the CA, and check your system clock.
- WebSocket connection fails: the path is missing. Use
/mqttwith ports 8083 or 8084. - Tree freezes: you subscribed to
#on a busy broker. Narrow the subscription. - Disconnects every few seconds: another tool uses the same client ID. Many explorers generate one; make sure two saved connections do not share it.
- Not authorized on a private broker: the client ID must match the one issued with the credentials.
From Exploration to Production
A desktop explorer is a debugging lens; the broker is what has to be reliable. When your devices move beyond experiments, run them on a fully managed MQTT service rather than the shared test area. ConnectMQ brokers support MQTT 3.1.1 and 5.0 over TCP, TLS, WebSocket and secure WebSocket, so every explorer in this comparison connects without special configuration. For the bigger picture of hosting choices, read the guide to a cloud MQTT broker, and the public MQTT test broker page lists the shared limits in detail. To turn what you see in an explorer into application code, the MQTT client libraries guide is the next step, and mosquitto_pub and mosquitto_sub examples cover the scripted side.
Get Started with ConnectMQ
Create a private broker at app.connectmq.com on the free Serverless plan, no credit card required, and connect your favorite desktop explorer with the generated credentials. The portal adds a live topic explorer, dashboard and devices view organized by ISA-95 levels, so you can inspect traffic from any browser too.
Frequently Asked Questions
What is the best MQTT explorer desktop app?
For browsing a large topic tree, MQTT Explorer is hard to beat. For interactive publish-and-reply testing with MQTT 5, MQTTX is very convenient. If you use ConnectMQ, its desktop explorer and portal give you a consistent workflow across machines.
Can a desktop MQTT explorer connect to any broker?
Yes, as long as the app supports the broker's protocol version and transport. All the tools here speak standard MQTT and work with any compliant broker, hosted or self-run.
Is it safe to subscribe to # in an MQTT explorer?
On your own development broker, yes. On production or shared brokers it can overwhelm the app and expose more data than you need, so subscribe to a specific root instead.
Why do some topics show values immediately and others stay empty?
Topics with a retained message are delivered as soon as you subscribe. Others only appear when the next message is published.



