ember 0.1.0

MQTT 3.1.1 / 5.0 · Linux · Windows · macOS

A featherweight MQTT workbench.

Ember does the five things a working MQTT client must do — connect, subscribe, watch, publish, and get your existing connections in — without shipping a browser engine's worth of overhead.

MIT licensed · No account · No telemetry

6.6MB
Binary
3.1MB
.deb package
50,000
Messages held
0
Network calls of its own
The Ember window: a rail of connections on the left, a topic tree, and a message stream with timestamps, topics and payloads in monospace.
The real interface 1440 × 950 · dark · two brokers, live stream

01 / What it does

Five jobs, done properly.

Connect, subscribe, watch, publish, import. Ember does not chart, script, mock a broker or sync a team, because a feature that does not beat what is already there is not a feature.

Connections

TCP, TLS, WebSocket and secure WebSocket; MQTT 3.1.1 and 5.0. A username and password, your own client ID, keep-alive, clean session and a connect timeout. TLS takes a custom CA or a client certificate and key. Last will, auto-reconnect with backoff and automatic re-subscription belong to the connection, not to a wizard.

mqtt:// mqtts:// ws:// wss:// MQTT 5.0

Several brokers, one window

One tab per connection, each with its own buffer, filter, subscription state and compose draft. File them into groups you create yourself — Production, Client A, Testing — then drag, right-click or use the row menu. Search reaches into collapsed groups, and deleting a group never deletes a connection.

groups tabs search

The message stream

Direction, timestamp, topic, payload, QoS and retain on a 29px row. Copy the payload, reuse it in the composer, pin the topic or filter to it without leaving the list. Two independent searches — by topic, and by payload, hex for binary. A virtualised grid holds 50,000 messages without slowing the window.

QoS 0/1/2 retain duplicate pause

Inspector and topics view

Click a row for pretty JSON with syntax colour, raw text, a hex dump and MQTT 5 properties; binary payloads are decoded in Rust. The topics view is one row per topic with its latest payload, age and count, and the topic tree carries subtree counts with one-click filtering.

JSON hex properties

Publishing

Topic autocomplete from everything you have seen. Payloads as text, JSON, base64 or hex — binary-safe, encoded in Rust. QoS 0/1/2, retain, and MQTT 5 publish properties: user properties, content type, response topic, correlation data, expiry. Publish history recalls any of them in one click, and the payload field resizes by dragging the band above it.

text base64 hex history

Import and export

MQTTX exports import without blocking the window, from the usual OS paths or dropped onto it — existing connections are the usual way in. Export JSONL or CSV. Every message is appended to a local daily log for seven days and can be replayed read-only.

MQTTX JSONL CSV

Every day, not just the first hour

Full keyboard operation, including the stream itself. Light, dark, or follow the system. Buffers, filters, drafts, groups and the panel size survive a restart unless you clear them. No telemetry, no accounts, no network call you did not ask for.

keyboard themes restore

Anatomy of a message row

Everything a line in the stream carries, at the density the window uses. Data is monospace; status and direction each keep their own colour.

Row actions
  • Copy the payload
  • Reuse it in the composer
  • Pin the topic
  • Filter to it

02 / Keyboard

Reachable without the mouse.

Every primary workflow has a key path, the message stream included. ⌘ replaces Ctrl on macOS.

Shortcuts

Command paletteCtrlK
New connectionCtrlN
ImportCtrlI
Topic filterCtrlF
PublishCtrlEnter
Clear this connectionCtrlShiftX
Walk the stream↑↓PgUpPgDn
Open the inspectorEnter
Connection logCtrlL
SettingsCtrl,

03 / Install

Four ways onto the machine.

Linux is where Ember is developed, tested and released from. Windows and macOS build from the same source and are expected to work, best-effort.

Package

sudo dpkg -i Ember_0.1.0_amd64.deb

Needs webkit2gtk-4.1, which most current distributions already have. The package is 3.1 MB.

04 / Local

Local, and that is a promise.

No telemetry, no accounts, no update pings. Ember talks to the brokers you point it at and nothing else.

Nothing phones home

No analytics, no crash reporting, no version check. The binary makes no network request of its own.

Passwords in the keyring

Secret Service, Keychain or Credential Manager. If no keyring exists they stay in connections.json with mode 0600 — and Settings says so.

Session logs on disk

The daily log is a local file under the data folder, kept seven days. Settings → Data folder shows the exact path.

05 / Credits

Made by one person.

Alex Sofroniev

Design and code

Ember is designed and built by Alex Sofroniev — the interface, the Rust engine, the releases. The source is public, the licence is MIT, and nothing in the product depends on a private service.

Built with

Engine
Rust · rumqttc
Shell
Tauri · system WebView
Interface
React 19 · Zustand
Text
Inter — Rasmus Andersson
Data type
JetBrains Mono — JetBrains
Protocol
MQTT 5.0 — OASIS

MIT © 2026 Alex Sofroniev Licence text