# MQTTX 1.13.2 Released: MQTTX Agent and Dashboard

> MQTTX 1.13.2 uses MQTTX Agent to automate MQTT tests, compare messages, and investigate failures, with independent Dashboard views for telemetry.

> Language: en · Published: 2026-10-26 · Category: Release Notes · Version: 1.13.2 · Canonical: https://mqttx.app/blog/mqttx-1-13-2-released · Translation: [中文](https://mqttx.app/zh/blog/mqttx-1-13-2-released.md)

MQTTX 1.13.2 is now officially released. The desktop Copilot becomes **MQTTX Agent**, which can execute MQTT tests, compare results, and investigate failures from natural-language requests. **Dashboard** is available for the first time to compare telemetry readings and trends visually. This release also adds GZIP decompression and improves connection management and everyday debugging.

> [Download MQTTX 1.13.2](https://github.com/emqx/MQTTX/releases/tag/v1.13.2) · [Official downloads](https://mqttx.app/downloads)

## MQTTX Agent: Automate MQTT testing and verification 🤖

MQTTX Agent is an AI Agent built into the desktop client. Give it a test goal and expected result, and it can break down the task, use connection, subscription, publishing, message, and log tools, then execute the test, compare actual results, and report its findings. Actions request approval according to the selected permission mode. The Agent can also generate test data, client examples, schemas, and data-processing scripts.

### Automatically verify connections and publish/subscribe messaging

Give the Agent a Pub/Sub test goal and it can check the connection, subscribe, publish a message, wait for or query received messages, compare the Topic and Payload, and report the actual QoS and results of each step. For example:

> Verify message exchange on my current connection: use a unique topic under `mqttx-test/` to send one JSON message with a unique test ID and timestamp at QoS 1. The expected result is a received message with the same topic and test data. Complete the verification and summarize each step; if it fails or no matching message arrives, inspect the logs and report where it failed.

The Agent bases its conclusion on the returned connection state, message records, and logs; without a matching received message, reception remains unconfirmed. In Ask mode, connection, subscription, and publishing actions request approval.

### Test device commands against reported state

Device interaction can also be part of an MQTT protocol test. Provide the command topic, Payload format, state-report topic, and expected state, and the Agent can send the command, wait for a new report, and compare the result. For example:

> Using the device protocol I provided, verify the study fan's speed-2 control: send the command, wait for a new state report, compare `power` and `speed` with the expected values, and report the conclusion and supporting message. If no new report arrives, mark the result unconfirmed.

The Agent checks the outcome against a new device-state or command-execution report. Ask mode requests approval before actions such as publishing control messages.

### Tools and workspace for the task

Mention a connection with `@` to work with its configuration, subscriptions, and messages. Type `/` to choose Skills for client code, test data, schemas, custom functions, diagnostics, or Zero EMQX. For connection checks, publish/subscribe tests, data simulation, and benchmarks, the MQTTX CLI Skill prepares commands that you copy and run in a terminal. Configured MCP servers can contribute external tools alongside MQTTX operations.

![Agent Skills chooser](https://mqttx.app/images/blog/mqttx-1-13-2/agent-skills.png)

For payload transformations and Protobuf or Avro schemas, provide representative input and expected output. The Agent can run the test, compare its output, and report the result. Script tests require approval in every permission mode, including Auto. Applied transformation functions affect all connections, so check their scope before applying them.

The Agent supports full-screen use and a movable, resizable floating window, opened with `Cmd/Ctrl + J`, so messages and the conversation remain visible together. Tool steps and results are clear, with improved spacing for paragraphs, lists, code, and tables.

![MQTTX Agent floating window example](https://mqttx.app/images/blog/mqttx-1-13-2/mqttx-1.13.2-agent-floating.png)

This release adds context usage and automatic compaction, plus selectable reasoning strength for supported models. It also improves model-parameter compatibility, connection context after a reload, and the `@` menu, and fixes subscription counts.

## Dashboard: Device metrics and trends in one view 📊

Dashboard turns message fields into readings, gauges, and charts for observing temperature, humidity, pressure, and other metrics without comparing each payload. It can be configured manually for existing connections, independently of the Agent.

During telemetry tests, these views make readings and changes before and after a test visible.

Under **Viewer → Dashboard**, each widget uses a connection, topic filter, and payload field:

- **Big Number:** Highlights the current temperature, pressure, or counter value.
- **Gauge:** Shows humidity, load percentage, or another metric within a configured range.
- **Line:** Plots changes by message reception time to compare data before and after a test.

Widgets have independent data sources and support dragging and resizing. A dashboard can show several fields or combine data from different connections and topics.

![Factory telemetry Dashboard example](https://mqttx.app/images/blog/mqttx-1-13-2/case-dashboard.png)

Widgets update with new messages. Time-range selection provides access to messages already received and saved locally. Both live updates and history queries support MQTT `+` and `#` topic filters. This release also improves data loading, historical matching, menus, the widget editor, and Gauge styling.

## More features and usability improvements

### GZIP message decompression

Desktop and Web add an optional **Auto-decompress GZIP messages** setting for inspecting compressed payloads directly. Desktop marks decompressed messages; uncompressed content remains unchanged.

![GZIP decompression setting](https://mqttx.app/images/blog/mqttx-1-13-2/gzip-settings.png)

### Large Topic Tree browsing

Desktop improves browsing and updates in large Unified Namespaces, limits the subtopics displayed at once, and requests confirmation before expanding a large tree. A resizable information panel shows direct subtopics, counts, and depth.

### Independent publish contents per connection

Desktop keeps each connection's publish topic, Payload, and publish history separate. Switching connections restores that connection's publish contents. Desktop and Web support deleting individual publish-topic history entries.

### Connection groups and JSON backups

Desktop supports group selection when creating or editing connections, preserves collapsed groups, and reveals newly created connections. JSON backup and recovery include group names and membership to retain connection organization.

### Offline subscriptions and MQTT 5.0 debugging

Desktop and Web support offline deletion or disabling of subscriptions with a clean session, updating the reconnect cache to help address repeated disconnects caused by invalid subscriptions. Persistent sessions still require a broker connection to manage stored subscriptions.

Desktop displays Response Information returned by the broker. CLI also outputs it when requested and returned, supporting MQTT 5.0 request-and-response debugging.

### Everyday actions

Desktop and Web add quick connection actions to the empty page, reveal a hidden connection list when opening a connection, and move Clear History to the toolbar. Desktop adds confirmation before clearing and visible `⋯` row menus for connections and groups, with consistent row heights and layouts.

Desktop and Web About pages introduce EMQ products through a message flow. CLI root help adds links to relevant tools and services.

## Fixes and compatibility improvements 🛠

- **Filtering and history:** Desktop and Web correctly handle MQTT wildcards, system topics, shared subscriptions, and case sensitivity, with a clearable current filter. Desktop preserves subscription filtering during searches and avoids skipped boundary messages in history paging.
- **Subscription editing:** Desktop and Web fix the Confirm button remaining in a loading state.
- **MQTT 5.0 properties:** Desktop and Web omit cleared numeric properties, fixing connection failures caused by empty strings.
- **Connection settings:** Desktop immediately applies edited settings and stops old clients from reconnecting with stale configuration.
- **Decoding and imports:** Desktop fixes closing-brace indentation in nested Protobuf output and reports unreadable Excel files while clearing stale paths.
- **Interface consistency:** Desktop and Web improve topic colors across light, dark, and night themes and prevent scrollbars from wrapping QoS labels. Desktop completes translations and aligns menus, Payload Inspector headers, chart resizing, pane dragging, and styles across navigation.
- **Platform compatibility:** `Ctrl+W` / `Cmd+W` in the Desktop main window no longer quits the application. CLI installation on Apple Silicon uses the correct native architecture. Web's Node.js requirement changes to `>=18`.

The release also updates READMEs across all three applications and desktop documentation, repairs lint and adds corresponding CI, removes stale or duplicated code and test setup, and improves CLI publishing and npm provenance metadata.

## Combined example: Automate telemetry checks and visualize the results

Give the Agent a finite telemetry test: create a connection, publish 12 samples, read the received messages, compare their count, topics, and fields, and report the results. The independent Dashboard displays metrics and trends from the same connection.

After configuring a model with tool support, submit one request to the Agent:

> Create a temporary Zero EMQX broker, save its connection as Factory Demo, connect, and subscribe to `factory/+/telemetry`. Publish 12 JSON messages with `deviceId` and varying `temperature`, `humidity`, and `pressure` values to `factory/line-01/telemetry`, one at a time. Automatically compare the received count, topics, and fields and report the results. Then create a Factory Overview dashboard showing temperature, humidity, pressure, and the temperature trend; check each widget's connection, Topic Filter, and field binding, then open it.

The Agent executes tool steps, with approvals in Ask mode. [Zero EMQX](https://zero.emqx.io/) provides free temporary test brokers; instance expiry and cleanup rules come from the creation result.

A single sample has the following structure:

```json
{
  "deviceId": "line-01",
  "temperature": 24.8,
  "humidity": 56,
  "pressure": 1.02
}
```

![Message list with 12 local samples](https://mqttx.app/images/blog/mqttx-1-13-2/case-telemetry-messages.png)

Four widgets use the same connection and `factory/+/telemetry`: temperature and pressure Big Numbers, a 0–100% humidity Gauge, and a temperature Line chart. They read the corresponding fields, with units of `°C`, `%`, and `bar`; the trend chart includes its unit in the title. The Agent can also adjust widget positions and sizes.

![Widget source and JSON field binding](https://mqttx.app/images/blog/mqttx-1-13-2/case-widget-editor.png)

The Agent can summarize its checks from the received messages and widget configurations, identifying missing messages or unexpected field bindings. Dashboard displays the latest readings and trends from those messages.

This example publishes only 12 finite samples. With an active connection and subscription, the dashboard continues updating when devices or other clients publish to matching topics.

## Downloads and documentation

Thanks to all contributors, including first-time contributors @DanInSpace104, @sourabhburse, @XuKing, and @T3rm1.

- [Download MQTTX](https://mqttx.app/downloads)
- [Read the documentation](https://mqttx.app/docs)
- [See the full 1.13.2 changes and contributors](https://github.com/emqx/MQTTX/releases/tag/v1.13.2)
