Service-bus-tui is a terminal-based tool designed to explore and manage Azure Service Bus resources through an intuitive text user interface (TUI). This utility provides developers with a streamlined way to interact with their Service Bus namespaces, topics, queues, and subscriptions directly from the command line.
Key Features:
Authentication Support: Enables secure access using Azure CLI or interactive browser authentication.
Namespace Discovery: Automatically identifies all Service Bus namespaces across your Azure subscriptions, displaying details like namespace name, subscription ID, and resource group.
Resource Browsing: Offers tree-based navigation to explore topics, queues, subscriptions, and associated messages (including dead-letter queue).
Message Management: Allows users to peek at message details, view JSON bodies in formatted preview, and navigate through paginated results.
Keyboard-Driven Navigation: Provides shortcuts for efficient movement within the interface (e.g., up/down or j/k for navigation).
Audience & Benefit:
Ideal for developers, DevOps engineers, and cloud professionals working with Azure Service Bus. This tool streamlines resource exploration and management without requiring a graphical user interface, saving time and enhancing productivity.
Service-bus-tui can be installed via winget, making it accessible for users to integrate into their workflows seamlessly.
README
service-bus-tui
A terminal-based explorer for Azure Service Bus.
> Work in Progress: This project is currently under active development.
Previews
Features
Authentication
Azure CLI authentication (uses existing az login session)
Interactive browser authentication
Service principal (client ID / client secret)
Connection string
Optional save prompt after connection-string login
Saved connection strings list with quick connect and delete
Emulator (one-click connect to local Service Bus emulator)
Namespace Discovery
Automatically lists all Service Bus namespaces across your Azure subscriptions
Displays namespace name, subscription ID, and resource group
Resource Browsing
Tree-based navigation of namespaces
List topics and queues
Expand topics to view subscriptions
Expand queues to view active and DLQ messages
View active messages and dead-letter queue (DLQ) messages per subscription or queue
Message Viewing
Peek messages from subscriptions and queues (active and DLQ)
Tabular display with sequence number, message ID, subject, enqueued time, and body preview
JSON body formatting in preview
Paginated browsing (100 messages per page) with automatic page detection at boundaries
Copy raw message body to clipboard from message list/detail (ctrl+y)
Message Resending
Resend selected messages back to their source topic or queue
If nothing is selected, resend uses the currently highlighted row
Single-message resend opens editable send form prefilled with original message body/metadata
Works on both active and dead-letter messages (DLQ replay)
Multi-message selection support
Option to keep original or generate new Message IDs
Real-time progress tracking
Message Sending
Send new messages directly to a topic or queue
Compose subject, content type, and body from an in-app modal form
Content type selection with built-in presets and custom value support
Copy compose/resend-edit body to clipboard (ctrl+y)
Navigation
Keyboard-driven interface
up/down or j/k: Navigate items
left/right or h/l or enter: Expand/collapse nodes
tab: Switch between namespace tree and messages pane
ctrl+n / ctrl+p: Next/previous page of messages
ctrl+y: Copy raw message body to clipboard (message list, detail, send/resend-edit body)
S: Open send message modal from selected topic/queue
space: Select/deselect messages
R: Resend selected messages (or current row if none selected; single selection opens editable form)
esc: Go back
ctrl+c: Quit
Installation
Homebrew (macOS/Linux)
brew tap monsieurtib/tap
brew install service-bus-tui
Winget (Windows)
winget install MonsieurTib.service-bus-tui
Chocolatey (Windows)
choco install service-bus-tui
Go Install
go install github.com/MonsieurTib/service-bus-tui@latest
Build from source
git clone https://github.com/MonsieurTib/service-bus-tui.git
cd service-bus-tui
go build -o service-bus-tui .
Usage
service-bus-tui
Select an authentication method, choose a namespace, and browse your Service Bus resources.
If you authenticate with a connection string, the app prompts you to optionally save it for later reuse.
Emulator Support
Supports the Azure Service Bus emulator running in Docker. Select Emulator (localhost) from the auth menu for default port.
Limitation: Total message count is unavailable (SDK bug) — page indicator shows "?" but pagination works normally.
Saved Connection Strings
Saved connection strings are stored locally as plain JSON at:
~/.config/service-bus-tui/connections.json
The app writes this file with restrictive permissions (directory 0700, file 0600).
Requirements
Go 1.24+
Azure subscription with Service Bus namespaces (or the local emulator)
For Azure CLI auth: az login must be completed beforehand