A fast, keyboard-driven terminal UI for managing RabbitMQ clusters
TBunny is your friendly terminal companion for RabbitMQ management. No more clicking through web interfaces โ manage your queues, exchanges, virtual hosts, and users right from your terminal with lightning-fast keyboard shortcuts!
This project started as a personal adventure to learn Go, and it's been heavily inspired by the incredible k9s project. Both the architecture and the visual design are based on k9s with some modifications. If you're familiar with k9s, you'll feel right at home here! Huge thanks to Fernand Galiana and the entire k9s team for creating such an amazing tool and sharing their knowledge with the community.
- โก Lightning Fast โ Navigate RabbitMQ resources with keyboard shortcuts
- ๐ฏ Multi-Cluster Support โ Easily switch between different RabbitMQ clusters
- โธ๏ธ Kubernetes Support โ Connect to RabbitMQ running inside Kubernetes clusters via automatic port-forwarding
- ๐ Comprehensive Views โ Queues, exchanges, virtual hosts, users, and more
- ๐จ Customizable โ Tweak the UI to match your preferences
The easiest way to install on macOS and linux is via Homebrew:
brew install anadale/tbunny/tbunnyDownload the latest release for your platform from the Releases page.
macOS:
# Detects your architecture automatically
curl -s https://api.github.com/repos/anadale/tbunny/releases/latest \
| grep "browser_download_url.*Darwin.*tar.gz" \
| grep "$(uname -m)" \
| cut -d '"' -f 4 \
| xargs curl -LO
tar xzf tbunny_*_Darwin_*.tar.gz
sudo mv tbunny /usr/local/bin/
rm tbunny_*_Darwin_*.tar.gzLinux:
# Detects your architecture automatically
curl -s https://api.github.com/repos/anadale/tbunny/releases/latest \
| grep "browser_download_url.*Linux.*tar.gz" \
| grep "$(uname -m)" \
| cut -d '"' -f 4 \
| xargs curl -LO
tar xzf tbunny_*_Linux_*.tar.gz
sudo mv tbunny /usr/local/bin/
rm tbunny_*_Linux_*.tar.gzWindows:
Download the appropriate .zip file from the Releases page, extract it, and add tbunny.exe to your PATH.
If you have Go 1.25+ installed:
go install github.com/anadale/tbunny/cmd/tbunny@latestgit clone https://github.com/anadale/tbunny.git
cd tbunny
go build -o tbunny ./cmd/tbunny
sudo mv tbunny /usr/local/bin/Launch TBunny and start managing your RabbitMQ clusters:
tbunnyWhen you run TBunny for the first time (or when no cluster is configured), you'll see the clusters list view. To add your first cluster:
- Press
ato open the "Add Cluster" dialog - Give your cluster a name
- Choose the connection type โ
DirectorKubernetes(see below) - Fill in the connection details
- Provide your username and password
- Press
Enterto save
That's it! TBunny will connect to your cluster, and you can start managing your RabbitMQ resources.
Use this type to connect to a RabbitMQ instance accessible via its Management API URL directly:
| Field | Example |
|---|---|
| URL | http://localhost:15672 |
| Username | guest |
| Password | guest |
If your RabbitMQ runs inside a Kubernetes cluster, TBunny can connect to it automatically using port-forwarding โ no need to run kubectl port-forward manually!
Prerequisites: ~/.kube/config must be configured with at least one context. If TBunny finds a valid kubeconfig, the Kubernetes option will appear in the connection type dropdown automatically.
When you select Kubernetes as the connection type, fill in:
| Field | Description | Default |
|---|---|---|
| Context | Kubernetes context from your kubeconfig | (first available) |
| Namespace | Namespace where RabbitMQ is deployed | rabbitmq |
| Instance name | Name of the RabbitMQ instance | rabbitmq |
| Username | RabbitMQ management user | guest |
| Password | RabbitMQ management password | guest |
TBunny will automatically find a RabbitMQ pod in the specified namespace (using standard app.kubernetes.io/name and app.kubernetes.io/instance labels), establish a port-forward to the Management API, and keep it alive for the duration of the session.
Need debugging logs? No problem:
tbunny --log-file ~/tbunny-debug.logWant to use a custom config location?
tbunny --config-dir ~/.my-custom-config| Shortcut | Action |
|---|---|
? |
Toggle help screen |
Esc |
Go back / Clear |
Ctrl+C |
Exit TBunny |
Ctrl+E |
Show/hide header |
Ctrl+G |
Show/hide breadcrumbs |
Once you're connected to a cluster, use these shortcuts to jump between views:
| Shortcut | View |
|---|---|
Shift+Q |
๐ฆ Queues |
Shift+E |
๐ Exchanges |
Shift+C |
๐ Connections |
Shift+V |
๐ Virtual Hosts |
Shift+U |
๐ฅ Users |
Shift+L |
๐ Clusters |
TBunny stores its configuration following the XDG Base Directory spec:
| OS | Configuration Path |
|---|---|
| ๐ง Linux | ~/.config/tbunny/ |
| ๐ macOS | ~/Library/Application Support/tbunny/ |
| ๐ช Windows | %APPDATA%\tbunny\ |
Customize the TBunny behavior:
ui:
splashDuration: 1s # How long to show the splash screen
connectionTimeout: 10s # Connection timeout for RabbitMQ Management APIAvailable Options:
-
ui.splashDuration(duration) Control splash screen duration. Examples:1s,500ms,2s. Default:1s -
connectionTimeout(duration) Connection timeout for RabbitMQ Management API. Default:10s
Cluster connections are managed through the TBunny interface. Use the clusters view (Shift+L) to add, edit, or remove cluster connections. All cluster configurations are automatically saved to the configuration directory.
tbunny [flags]
Flags:
--log-file string Path to log file for debugging
--config-dir string Override default configuration directory
Licensed under the Apache License 2.0. See LICENSE for details.
This project wouldn't exist without the inspiration from k9s. A massive thank you to Fernand Galiana and all the k9s contributors for creating such an excellent example of a terminal UI done right!
Made with ๐ and lots of โ