Net.Azure.ServiceBusConsole
0.3.0
dotnet tool install --global Net.Azure.ServiceBusConsole --version 0.3.0
dotnet new tool-manifest
dotnet tool install --local Net.Azure.ServiceBusConsole --version 0.3.0
#tool dotnet:?package=Net.Azure.ServiceBusConsole&version=0.3.0
nuke :add-package Net.Azure.ServiceBusConsole --version 0.3.0
azure-servicebus-console
A terminal UI browser for Azure Service Bus — explore namespaces, queues, topics, and messages directly from your terminal.
Install
Requires .NET 10 SDK and an active Azure CLI login.
dotnet tool install -g Net.Azure.ServiceBusConsole
az login
azsb
To update to the latest version:
dotnet tool update -g Net.Azure.ServiceBusConsole
Note: Subscription IDs are currently hardcoded. See Configuration.
Features
- Browse Service Bus namespaces across multiple Azure subscriptions
- Queues and topics with live message counts (active, DLQ, scheduled, transfer) — animated spinner while refreshing from cache
- Filter queues, topics, and subscriptions by typing in the filter box
- Scrollable tables — arrow keys or scrollbar to navigate long lists
- Peek messages non-destructively (PeekLock) or receive/delete them (ReceiveAndDelete)
- Inspect message properties and body (auto pretty-printed if JSON) with a scrollable body panel
- Dead-letter queue browsing per queue and per subscription
- Requeue DLQ messages — fetch-lock a dead-lettered message, republish it to the origin queue/topic, and complete it in one step
- Delete individual queues, topics, subscriptions, or messages
Screenshots
Keyboard shortcuts
All screens
| Key | Action |
|---|---|
Tab / Shift+Tab |
Move focus between controls |
Esc |
Go back to previous screen |
Connection screen
| Key | Action |
|---|---|
F1 |
Open queue browser |
F2 |
Open topic browser |
F3 |
Open all-subscriptions view |
Queue list / Topic list / Subscription list
| Key | Action |
|---|---|
| Type | Filter list by name |
Backspace |
Remove last filter character |
↑ / ↓ |
Scroll list |
Enter |
Open selected item |
F5 |
Refresh |
F9 / Del |
Delete focused item |
Queue browser / Subscription browser
| Key | Action |
|---|---|
F6 |
Toggle between active queue and DLQ |
F7 |
Peek messages (non-destructive) |
F8 |
Receive messages (destructive — deletes from queue) |
F9 / Del |
Delete focused message |
F10 |
Requeue focused DLQ message (DLQ mode only) |
↑ / ↓ |
Scroll message list |
Enter |
View message detail |
Message detail
| Key | Action |
|---|---|
↑ / ↓ |
Scroll message body |
F9 / Del |
Delete message |
F10 |
Requeue message (DLQ messages only) |
Prerequisites
- .NET 10 SDK
- Azure CLI logged in:
az login
Authentication uses AzureCliCredential — no connection strings or API keys are stored.
Running from source
git clone --recurse-submodules https://github.com/zidad/azure-servicebus-console
cd azure-servicebus-console
az login
dotnet run
Logs are written to ./logs/session-<timestamp>.log on each run.
Configuration
Azure subscription IDs are hardcoded in Pages/ConnectionPage.razor in the SubscriptionOptions array. Update these to match your environment before running from source.
How requeue works
When a message ends up in a dead-letter queue, F10 on the message list or message detail will:
- Receive the message from the DLQ with PeekLock
- Send an identical copy to the origin entity (queue or topic)
- Complete (permanently remove) the original from the DLQ
The message is immediately removed from the list on success.
Releasing
Every push to main checks the <Version> in ServiceBusConsole.csproj. If a tag for that version doesn't exist yet, the publish workflow will automatically create the tag, pack, and push to NuGet.org.
To release a new version, bump the version in ServiceBusConsole.csproj and merge to main:
<Version>0.2.0</Version>
Requires a NUGET_API_KEY secret in the repository settings.
Built with
- RazorConsole — Blazor Razor components rendered to the terminal via Spectre.Console
- Azure.Messaging.ServiceBus — Service Bus client
- Azure.ResourceManager.ServiceBus — namespace discovery via ARM
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.