rbtop

module
v0.0.0-...-9802c7a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2026 License: MIT

README

rbtop

CI 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

Directories

Path Synopsis
cmd
rbtop command
Command rbtop is a terminal UI for RabbitMQ, inspired by htop/ctop: it shows queues and exchanges via the Management HTTP API and, when Docker is available, lets you control the RabbitMQ container itself.
Command rbtop is a terminal UI for RabbitMQ, inspired by htop/ctop: it shows queues and exchanges via the Management HTTP API and, when Docker is available, lets you control the RabbitMQ container itself.
internal
config
Package config parses rbtop's connection settings from CLI flags and environment variables.
Package config parses rbtop's connection settings from CLI flags and environment variables.
docker
Package docker discovers and controls the RabbitMQ container(s) running on the local Docker daemon.
Package docker discovers and controls the RabbitMQ container(s) running on the local Docker daemon.
rabbitmq
Package rabbitmq is a thin client for the RabbitMQ Management HTTP API, covering only the operations rbtop needs: listing queues/exchanges, purging/deleting them, and peeking at queue messages.
Package rabbitmq is a thin client for the RabbitMQ Management HTTP API, covering only the operations rbtop needs: listing queues/exchanges, purging/deleting them, and peeking at queue messages.
tui
Package tui implements rbtop's Bubble Tea application: root model, per-view tables, and the keybindings that drive queue/exchange/container actions.
Package tui implements rbtop's Bubble Tea application: root model, per-view tables, and the keybindings that drive queue/exchange/container actions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL