A terminal-based explorer for Azure Service Bus.
Work in Progress: This project is currently under active development.
- Azure CLI authentication (uses existing
az loginsession) - 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)
- Automatically lists all Service Bus namespaces across your Azure subscriptions
- Displays namespace name, subscription ID, and resource group
- 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
- 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
- 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
- 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
- Keyboard-driven interface
up/downorj/k: Navigate itemsleft/rightorh/lorenter: Expand/collapse nodestab: Switch between namespace tree and messages panectrl+n/ctrl+p: Next/previous page of messagesS: Open send message modal from selected topic/queuespace: Select/deselect messagesR: Resend selected messages (or current row if none selected; single selection opens editable form)esc: Go backctrl+c: Quit
brew tap monsieurtib/tap
brew install service-bus-tuiwinget install MonsieurTib.service-bus-tuichoco install service-bus-tuigo install github.com/MonsieurTib/service-bus-tui@latestgit clone https://github.com/MonsieurTib/service-bus-tui.git
cd service-bus-tui
go build -o service-bus-tui .service-bus-tuiSelect 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.
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 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).
- Go 1.24+
- Azure subscription with Service Bus namespaces (or the local emulator)
- For Azure CLI auth:
az loginmust be completed beforehand - For Emulator: Docker with the Service Bus emulator running