# TopicBench
Free, open-source MQTT explorer and monitor for builders and testers.
## Download
Latest free release: **[v1.1.1](https://github.com/unipsycho/topicbench/releases/tag/v1.1.1)**
| | |
|:--|:--|
| **Windows** portable (x64) | [TopicBench-windows-x64-portable.zip](https://github.com/unipsycho/topicbench/releases/download/v1.1.1/TopicBench-windows-x64-portable.zip) |
| **Linux** binary (x64) | [topicbench-linux-x64](https://github.com/unipsycho/topicbench/releases/download/v1.1.1/topicbench-linux-x64) |
| **Arch / Omarchy** (AUR) | [`topicbench-bin`](packaging/aur/topicbench-bin) — `yay -S topicbench-bin` |
| SHA-256 checksums | [SHA256SUMS](https://github.com/unipsycho/topicbench/releases/download/v1.1.1/SHA256SUMS) |
Windows: unzip and run `TopicBench.exe`.
Arch: AUR package installs the Release binary + desktop entry (OSS only). PKGBUILD lives in-tree; publish steps in [`packaging/aur/README.md`](packaging/aur/README.md).
[All releases](https://github.com/unipsycho/topicbench/releases) · [Source on GitHub](https://github.com/unipsycho/topicbench)
TopicBench Pro is the paid companion — a standalone download for licensed customers. The free TopicBench app can be used unrestricted for the base features. See [TopicBench Pro](https://www.agileautomation.ca/products/topic-bench).
## Why TopicBench
- **100% Rust** — built entirely in Rust to handle massive topic trees and topic lists with very efficient memory and CPU use
- **Simultaneous multi-broker** — connect to several brokers at once and monitor or search their topics in a single window
- **Multi-broker profiles** — save hosts, TLS/WSS options, and credentials (passwords in the OS keyring)
- **Live topic tree** — subscribe with wildcards and browse traffic as it arrives
- **Publish & recent** — send messages quickly and keep recent payloads handy
- **Payload inspect** — clear views for JSON and plain text
- **Stickies & graphs** — pin important topics and watch values over time
- **Search** — find topics and payloads without leaving the desktop UI
- **Free & open source** — use it, report issues, contribute.
- **Updates via GitHub Releases** — in-app check when releases are published
## Features
- Connection profiles (MQTT TCP / WebSocket, optional TLS)
- Concurrent live sessions across brokers in one window
- Topic subscriptions with `+` / `#`
- Shared sticky board across profiles
- Publish with QoS and retain
- Full keyboard shortcuts & navigation — F1 / `?` help, panel toggles, search focus, and more
## TopicBench Pro
Paid extras for teams that outgrow the free explorer — same app, unlock Pro when you need them.
- **MCP server** — connect, subscribe, publish, and wait from Cursor / CI against live sessions
- **Topic & payload simulation** — generators and formulas for whole payloads or JSON fields
- **Record → simulate** — capture live traffic, then suggest Simulate rows from the tape
- **Scenario player** — sequenced, timed multi-topic publish scripts
- **Combined multi-topic graph** — shared time axis across Graph stickies
- **History scrubber** — scrub per-topic history in the Payload panel
- **Topic bookmarks** — jump list into deep trees
- **Custom color rules** — paint tree rows by topic / payload predicates
- **Topic tree export & import** — JSON hierarchy out, republish onto a target broker
- **CSV recording** — time-series dumps for Excel
### Combined graphs
Combined graphs let you overlay multiple channels on a single time-logged graph — useful for correlating data across topics and even across brokers.
### Simulation
Simulation publishes scripted MQTT data into your live sessions. You can also auto-create simulations from recorded sessions to replicate datasets with a best-guess prediction of the observed series.
### Color rules
Color rules highlight topics in the tree based on payload matches, topic matches, and individual values within payloads.
### Bookmarks
Bookmarks jump you anywhere in a tree and auto-expand that topic for immediate access.
Learn about TopicBench Pro →
## Build from source
**Requirements:** Rust stable ≥ 1.80 (`rustup update stable`), plus Linux GUI libs (typically `libxcb`, `libxkbcommon`, and a Vulkan/GL stack).
```bash
git clone https://github.com/unipsycho/topicbench.git
cd topicbench
cargo run --release
```
Profiles: `~/.config/topicbench/profiles.json`
Settings: `~/.config/topicbench/settings.json`
**Windows:** native `cargo build --release` on Windows works; the Windows icon is embedded via `winres` (MinGW `windres` when cross-compiling from Linux).
## License
MIT OR Apache-2.0. See [`LICENSE-MIT`](LICENSE-MIT) and [`LICENSE-APACHE`](LICENSE-APACHE).