MQTT Explorer is the tool most people reach for when they need to actually see what's on a broker — but it's a mouse-driven desktop GUI, which is a bad fit when the broker lives on a server you're already SSH'd into. The CLI alternatives (mosquitto_sub and friends) are great for scripting but give you a flat firehose of text with no topic tree, no retained-message view, and no memory of what you just saw. I wanted MQTT Explorer's live topic tree and message inspection, but keyboard-driven, fast, and runnable straight from a terminal over SSH. LazyMQTT is that: a snappy TUI MQTT client you never have to take your hands off the keyboard for.
Demo
Terminal previewOverview
Terminal UI MQTT client with features like saved connections, live topic tree, and message inspector
Terminal UI MQTT client with features like saved connections, live topic tree, message inspector, and plugins.
From the maintainer
Maintainer profilelazymqtt
MQTT Explorer is the tool most people reach for when they need to actually see what's on a broker — but it's a mouse-dri
Terminal UI MQTT client with features like saved connections, live topic tree, and message inspector
Add a connection in the connections manager, hit connect, and watch the topic tree populate live as messages arrive. Navigate it entirely from the keyboard, drill into any topic to see its payload and full message history, and use v/y to select and yank a payload straight to your clipboard. Then open the publish form to send a message back — paste in a payload, set QoS/retain, and fire it. If the payload is JSON, enable the built-in json-view plugin to get pretty-printed, syntax-colored structure instead of a raw string.
Two things. First, it's uncompromisingly keyboard-first (lazygit-style modal navigation) with mouse text-selection as a bonus, not the primary model — every pane, the topic tree, folding, and selection all work without touching the mouse. Second, it has an in-process plugin system: LazyMQTT ships a lean core plus opt-in Rust plugins that hook the message stream and annotate/inspect it. Built-ins include json-view, topic-alerts (rule-based alerts on topics/payloads, edited in-app), json-schema validation, a topic-recorder (record traffic to JSONL and replay it with looping and speed control), publish-templates, a payload-generator, and a live traffic-analytics pane. It's a fast Rust binary (ratatui + rumqttc), no runtime, no Electron.
v0.1.1 adds a TLS certificate-validation toggle for self-signed brokers. Near-term direction is deepening the plugin ecosystem and the command menu (a palette for publish-templates and per-plugin commands), broader auth/TLS options, and packaging polish — it's already published to crates.io and installable via a Homebrew tap (brew tap scottfelder/lazymqtt).
Maintainer install notes
cargobrewbinary
Discussions