Skip to content

MQTT Explorer

The MQTT Explorer turns Sendpad into a first-class MQTT client. Define a session in a .mqtt file, press ⌘Enter to connect, then publish ad-hoc messages, watch topics stream live, and write scripted assertions alongside your HTTP tests.

@broker = mqtt://broker.hivemq.com:1883
@client-id = sendpad-demo
@subscribe sensors/# qos=0
### Publish — temperature
# @topic sensors/temp
# @qos 1
> { "temp": 22.5, "ts": "{{now}}" }
### Expect broadcast
# @expect topic = home/broadcast within 5000
< { "type": "announce" }

Press ⌘Enter to connect. The Explorer Panel shows the Topic Tree, live timeline, and a compose bar.

  • Connect⌘Enter opens the broker connection. The Explorer shows a Connected badge with session age.
  • Subscribe — every @subscribe directive fires on connect. Use + / # wildcards freely.
  • Publish — use the compose bar, or run publish blocks with ⌘⇧Enter for scripted mode.
  • Disconnect⌘Enter again. Last-will payloads fire if configured.

See the .mqtt file format reference for full directive syntax.

The Topic Tree groups every message by topic segment. Each node shows:

  • Last payload preview
  • Message count in this session
  • Retained-flag pin badge if the broker delivered a retained message

Click any node to filter the timeline to that topic (and its descendants).

Every message — subscribed or published — scrolls through the timeline with direction arrow (← received, → sent), QoS, and timestamp. Click an entry to expand headers + payload.

LevelSemantics
0At most once — fire-and-forget
1At least once — broker ACKs; duplicates possible
2Exactly once — four-step handshake; slowest, duplicate-free

QoS 1 and 2 require Pro.

Publishes with # @retain on are stored server-side and delivered to every future subscriber as the first message after subscribe. The tree pins retained messages with a visual badge.

Open Device Simulator from the .mqtt toolbar to publish fake data on an interval — useful for demo dashboards and soak tests. Configure topic, QoS, payload template, and cadence; leave it running in the background while you work on something else.

Put broker credentials in .env.local (auto-gitignored). Sendpad masks .env.local-only values in the env tooltip and value-redacts them from history:

@broker = mqtts://broker.example.com:8883
@username = iot-device
@password = {{MQTT_PASSWORD}}
# prod.env.local — gitignored
MQTT_PASSWORD = your-real-password
CapabilityFreePro
Open .mqtt files, syntax highlighting
Connect to a broker
QoS 0 subscribe / publish
QoS 1 / 2, retained flag, TLS
Scripted mode (⌘⇧Enter)
Device simulator