Skip to content

Repository files navigation

rbtop

CI License: MIT Go Version

A terminal UI for RabbitMQ, inspired by htop/ctop/dtop: browse queues and exchanges via the Management HTTP API, purge/delete/peek without leaving the terminal, and — when Docker is available — control the RabbitMQ container itself, all from one dashboard.

rbtop

Features

  • Overview — total queues/exchanges, ready messages, and active connections at a glance, each with a live sparkline of recent history.
  • Queues — state, ready/unacked/total counts, consumers, in/out rates, memory; filter by name, purge or delete, peek at messages without consuming them.
  • Exchanges — type, durability, binding count; drill into an exchange's bindings and jump straight to a bound queue.
  • Container — if the RabbitMQ node is running in Docker, see its status/CPU/memory and start, stop, restart it, or tail its logs.
  • Cluster picker — auto-detects running RabbitMQ containers via Docker and prefills the connection form; manual entry works too when Docker isn't available.

Installation

Go install:

go install github.com/Sans-arch/rbtop/cmd/rbtop@latest

Binary download: grab the archive for your platform from the latest release.

Homebrew: coming soon.

Usage

rbtop

On startup, rbtop lists RabbitMQ-looking Docker containers it finds on the host (or falls back to manual entry), lets you confirm/edit the connection details, then connects and starts polling.

Configuration

Flags take precedence over environment variables, which take precedence over defaults. These only prefill the connection form — rbtop doesn't connect to anything until you confirm it.

Flag Env var Default Description
--host RBTOP_HOST localhost RabbitMQ management host
--port RBTOP_PORT 15672 RabbitMQ management port
--user RBTOP_USER guest RabbitMQ username
--pass RBTOP_PASS guest RabbitMQ password
--vhost RBTOP_VHOST / RabbitMQ vhost
--interval RBTOP_INTERVAL 2s Polling interval

Keybindings

Global (main app): 1-4 or tab/shift+tab// to switch tabs, q to quit.

Screen/tab Keys
Cluster picker /k /j move · enter select · r refresh · q quit
Login form tab/shift+tab move between fields · enter connect · esc back
Overview (read-only — no actions)
Queues / filter · p purge · d delete · enter/m peek messages
Exchanges enter view bindings · d delete · h hide/show default exchanges
Container s start · S stop · r restart · l view logs
Bindings view /k /j move · enter jump to bound queue · esc close

Development

go build ./...
go vet ./...
go test ./...

No RabbitMQ or Docker instance is required to run the test suite — the RabbitMQ client and Docker client are both behind interfaces with fakes used in tests.

Contributing

Contributions are welcome — see CONTRIBUTING.md.

License

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages