A terminal UI for inspecting and managing message queues across RabbitMQ, Kafka, and MQTT.
Browse queues, read messages, publish, diff, dump, replay, and manage your brokers β all from the terminal. Wizard-style drill-down flow: Profiles -> Queues -> Messages -> Detail.
- Multi-broker β RabbitMQ (Management API), Kafka (librdkafka), MQTT (rumqttc)
- Non-destructive peek β RabbitMQ uses ack_requeue_true; Kafka uses ephemeral consumers
- Message operations β publish, copy, move, delete, export, import, diff, replay
- Multi-select β bulk operations on selected messages with visual checkboxes
- Smart decode β JSON/XML pretty-print, base64/gzip auto-decode, Avro via Schema Registry, Protobuf raw decode
- Exchange management β browse, create, delete exchanges and bindings (RabbitMQ)
- Queue management β purge, delete, compare queues, topology view, consumer groups
- Payload search β vim-style
/search withn/Nnavigation and highlighted matches - Monitoring β sparklines, auto-refresh, tail mode, webhook alerts with regex matching
- Pretty export β
Shift+Eexports JSON with fully indented nested bodies - File browser β directory navigation popup for export and import operations
- Benchmarking β concurrent flood-publish with p50/p95/p99 latency percentiles
- DLQ workflows β x-death header parsing, one-click re-route to original exchange
- 5 color themes β with live preview picker
- Scheduling β delayed message publishing with persistent timers
Download from GitHub Releases β available for macOS (ARM/Intel), Linux (x86), and Windows (x86/ARM). For Linux ARM, install via cargo install or build from source.
# Requires cmake for librdkafka
cargo install queuepeekgit clone https://github.com/matutetandil/queuepeek.git
cd queuepeek && cargo build --release
./target/release/queuepeekqueuepeek checks for updates automatically. When a new version is available, a hint appears in the status bar β press Shift+U to update in place.
# ~/.config/queuepeek/config.toml
[profiles.local]
type = "rabbitmq"
host = "localhost"
port = 15672
username = "guest"
password = "guest"
vhost = "/"
[profiles.kafka-dev]
type = "kafka"
host = "localhost"
port = 9092
[profiles.kafka-dev.schema_registry]
url = "http://localhost:8081"See the full configuration guide for TLS, MQTT topics, webhook alerts, templates, and more.
| Key | Queue list | Message list | Detail | Exchanges |
|---|---|---|---|---|
j/k |
Navigate | Navigate | Scroll | Navigate |
Enter |
Open queue | Open message | β | Expand/collapse |
/ |
Filter | Filter | Search payload | Filter |
Shift+P |
Publish | Publish | β | β |
p |
β | β | Pretty-print | β |
b |
β | β | Base64/gzip decode | Create binding |
s |
β | β | Schema Registry decode | β |
e/Shift+E |
β | Export / pretty | β | β |
Space |
β | Toggle select | β | β |
i |
Queue info | β | β | Exchange info |
Shift+G |
Consumer groups | β | β | β |
Shift+X |
Exchange mgmt | β | β | β |
a |
β | β | β | Create exchange |
Shift+D |
Delete queue | Delete selected | β | Delete exchange |
d |
β | Diff two msgs | β | Delete binding |
F5 |
Benchmark | β | β | β |
n/Shift+N |
β | β | Next/prev match | β |
f |
Fetch preset (persistent) | Fetch preset (persistent) | β | β |
Shift+F |
Load N once | Load N once | β | β |
? |
Help | Help | Help | Help |
Esc |
Back | Back/clear | Back | Back to queues |
Ctrl+Q |
Quit | Quit | Quit | Quit |
See the full keyboard reference for all shortcuts.
- Configuration β profiles, TLS, Schema Registry, webhooks, templates
- Keyboard shortcuts β complete key reference per screen
- Backends β RabbitMQ, Kafka, MQTT details and operation matrix
- Features β deep dive into every feature
- Architecture β codebase structure and design patterns
ratatui | crossterm | rdkafka | rumqttc | reqwest | apache-avro
If queuepeek saves you time, you can buy me a coffee β
MIT