The window 1440 × 900 · demo data · no socket Click any row — the inspector follows.
MQTT Deck · 0.2.0
A desktop MQTT client shown as itself.
The window above is not a screenshot. It is the interface rebuilt in HTML and CSS, down to the 29px row and the ember accent, carrying invented brokers on .internal and sensor payloads that never left this page. Select a topic, a timestamp, a payload. It behaves like text because it is text.
MQTT Deck is a 7.3 MB client for Linux, Windows and macOS: MQTT 3.1.1 and 5.0 over TCP, TLS and WebSocket, a stream that keeps fifty thousand messages scrollable, and nothing of yours in the cloud.
- 7.3MB
- Binary
- 3.5MB
- .deb package
- 50,000
- Messages held
- 7
- Days of local history
01 / Stream
Fifty thousand messages, one 29px row at a time.
The stream is virtualised: only the rows on screen exist, so a broker that never stops does not slow the window down. Time, direction, topic, payload, QoS and retain on every row. Two searches that do not get in each other's way — by topic name, by payload, hex for binary — direction filters, pause per connection, and a live rate on each topic so a device going quiet is a number falling.
QoS 0/1/2 retain dup rate/s pause buffer limit
- Grid
- virtualised
- Row
- 29 px
- Held
- 50,000 messages
- Search
- topic, payload
02 / Inspector
Read the payload where it landed.
The inspector opens beside the list, never on top of it. A collapsible JSON tree, syntax-coloured text, raw and hex, and the MQTT 5 properties that came with the message. Binary payloads are decoded in Rust. A diff compares the payload with the previous message on the same topic, line by line, so a drifting sensor is a line with a colour rather than a number you have to remember.
JSON tree diff hex properties copy · reuse · pin
- Tree
- collapsible JSON
- Views
- pretty, raw, hex, props
- Diff
- previous on topic
- Binary
- decoded in Rust
03 / Session
Seven days you can replay.
Every message is appended to a local daily log, kept for seven days. Any of those days opens read-only — same stream, same inspector, no socket — so the thing that happened at 03:12 is still there after lunch. Existing connections come across from MQTTX, or as JSON, YAML, XML, CSV and XLSX, one row each, subscriptions and last will included.
session replay MQTTX import JSON YAML XML CSV XLSX
- History
- 7 days, on disk
- Replay
- read-only
- Import
- MQTTX, CSV, XLSX
04 / Agent access
The window an agent can operate.
mqttdeck-mcp exposes the same engine over MCP: list connections, connect, subscribe with MQTT 5 options, publish, read the buffer, wait for a message. It is a bridge, not a second client — what the agent does is what you watch happen in the window. Loopback only, token in a 0600 file, and one switch in Settings closes the listener.
MCP Claude Code Cursor Codex loopback
- Bridge
- mqttdeck-mcp
- Bind
- loopback only
- Token
- 0600 file
- Switch
- off in Settings
05 / Local
No account, and nothing about your broker leaves.
Passwords go to the OS keyring — Secret Service on Linux, Keychain on macOS, Credential Manager on Windows — and to a 0600 file only when there is no keyring to ask. The app sends anonymous usage analytics and crash reports, on by default; one switch in Settings turns them off, and they never carry a broker address, a topic, a payload or a credential.
This page is quieter still. No analytics, no cookies, no third-party request. The only network call it ever makes is the form at the bottom, when you ask it for the download.
- Account
- none
- Passwords
- OS keyring
- Analytics
- one switch
- Payloads
- never sent
06 / Install
Linux first, because that is where it is built.
Linux is where MQTT Deck is developed, tested and released. Windows and macOS build from the same source — Tauri 2, React 19, Rust with rumqttc — and are supported best-effort. One window, one engine, three systems.
MQTT 3.1.1 MQTT 5.0 TCP TLS WebSocket MIT
- Binary
- 7.3 MB
- .deb
- 3.5 MB
- AppImage
- ~81 MB
- Engine
- Rust · rumqttc
- Shell
- Tauri 2 · React 19
The release binary is 7.3 MB. The AppImage is about 81 MB because it bundles its own runtime — it is the outlier, and the .deb is what most machines want.
07 / Download
Take the window with you.
One email, one link, and release notes when a version ships. The installers come from GitHub Releases, so this page never sees what you do with them.
- Binary
- 7.3 MB
- .deb
- 3.5 MB
- AppImage
- ~81 MB
- Licence
- MIT
MQTT Deck 0.2.0
Linux, Windows, macOS
Your download started.
If your browser blocked it, download the installer directly. Release notes will follow when a version ships.
No account. No tracking on this page. Downloads come from GitHub Releases.