Agent skill

Azure Service Bus

by kid-sid in kid-sid/claude-spellbook

A skill your agent uses when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages…

MITAuto-check passedBackend & APIs

Install Azure Service Bus

skills CLI
$ npx skills add kid-sid/claude-spellbook --skill azure-service-bus -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kid-sid/claude-spellbook azure-service-bus --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kid-sid/claude-spellbook.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/azure-service-bus .claude/skills/azure-service-bus && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
azure-service-bus
GitHub stars
190
Token cost
~4.2k tokens
SKILL.md length
736 words
Files
1
Skills in repo
55
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages…

  • Implementing reliable message processing with Azure Service Bus — choosing between queues and topics
  • SKILL.md covers When to Activate, Authentication, Queues vs Topics/Subscriptions and Sending Messages, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Configuring peek-lock settlement

What it does

Azure Service Bus is an agent skill from kid-sid/claude-spellbook. Use when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages, or enforcing ordered processing with sessions.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs. It works with Azure Service Bus. The repository describes itself as: A curated collection of skills, prompts, and workflows that extend Claude's capabilities — your personal grimoire for AI-powered development. The licence is MIT.

When your agent uses it

  • Implementing reliable message processing with Azure Service Bus — choosing between queues and topics
  • Configuring peek-lock settlement
  • Handling dead-lettered messages
  • Enforcing ordered processing with sessions

Example prompts

  • “/azure-service-bus”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit a7c2ac9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Azure Service Bus loads about 4.2k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 736 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kid-sid/claude-spellbook at commit a7c2ac9, republished under its MIT licence (© kid-sid). 736 words, ~4,240 tokens.

Download SKILL.mdSave it as .claude/skills/azure-service-bus/SKILL.md (or your agent's skills folder).
name
azure-service-bus
description
Use when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages, or enforcing ordered processing with sessions.

Azure Service Bus

Production patterns for Azure Service Bus using the azure-servicebus Python SDK.

When to Activate

  • Writing code that imports azure-servicebus or @azure/service-bus
  • Choosing between Service Bus queues, topics, and subscriptions
  • Implementing reliable message processing with peek-lock and settlement
  • Handling dead-lettered messages or poison message scenarios
  • Ensuring ordered processing with Service Bus sessions
  • Filtering messages per subscriber using SQL or correlation filters
  • Scheduling messages for future delivery or implementing deferred processing
  • Comparing Azure Service Bus against Azure Storage Queues or Event Hubs

Authentication

python
from azure.identity import DefaultAzureCredential
from azure.servicebus import ServiceBusClient

credential = DefaultAzureCredential()
client = ServiceBusClient(
    fully_qualified_namespace="myns.servicebus.windows.net",
    credential=credential,
)

# BAD: connection string embeds shared access key
client = ServiceBusClient.from_connection_string(
    "Endpoint=sb://myns.servicebus.windows.net/;SharedAccessKeyName=..."
)

# GOOD: keyless via RBAC role (Azure Service Bus Data Sender / Receiver)
client = ServiceBusClient(
    fully_qualified_namespace=os.environ["SERVICEBUS_NAMESPACE"],
    credential=DefaultAzureCredential(),
)

Always use DefaultAzureCredential and assign the minimum RBAC role:

RolePermission
Azure Service Bus Data SenderSend messages only
Azure Service Bus Data ReceiverReceive and settle messages only
Azure Service Bus Data OwnerFull control — use only for admin tooling

Queues vs Topics/Subscriptions

FactorQueueTopic + Subscriptions
ConsumersSingle consumer groupMultiple independent consumers
Fan-outNoYes — each subscription gets a copy
FilteringNoYes — SQL or correlation filter per subscription
OrderingSessions onlySessions only
Use caseTask queue, work distributionEvent fan-out, pub/sub
Queue:      Producer → [Queue] → Consumer A
Topic:      Producer → [Topic] → [Sub: orders-billing]    → Billing Service
                               → [Sub: orders-shipping]   → Shipping Service
                               → [Sub: orders-analytics]  → Analytics Service

Sending Messages

Single Message
python
from azure.servicebus import ServiceBusMessage
import json

def send_message(namespace: str, queue_name: str, body: dict, **props) -> None:
    credential = DefaultAzureCredential()
    with ServiceBusClient(namespace, credential) as client:
        with client.get_queue_sender(queue_name) as sender:
            message = ServiceBusMessage(
                json.dumps(body),
                subject=props.get("subject"),
                correlation_id=props.get("correlation_id"),
                message_id=props.get("message_id"),        # deduplication key
                time_to_live=props.get("ttl"),             # timedelta
                application_properties=props.get("properties", {}),
            )
            sender.send_messages(message)
Batch Send
python
def send_batch(namespace: str, queue_name: str, messages: list[dict]) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_sender(queue_name) as sender:
            batch = sender.create_message_batch()
            for body in messages:
                try:
                    batch.add_message(ServiceBusMessage(json.dumps(body)))
                except ValueError:
                    # Batch full — send current batch and start a new one
                    sender.send_messages(batch)
                    batch = sender.create_message_batch()
                    batch.add_message(ServiceBusMessage(json.dumps(body)))
            if len(batch):
                sender.send_messages(batch)
Scheduled Messages
python
from datetime import datetime, timedelta, timezone

def schedule_message(namespace: str, queue_name: str, body: dict, delay: timedelta) -> int:
    enqueue_at = datetime.now(timezone.utc) + delay
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_sender(queue_name) as sender:
            seq_numbers = sender.schedule_messages(
                ServiceBusMessage(json.dumps(body)),
                enqueue_at,
            )
            return seq_numbers[0]  # use to cancel with cancel_scheduled_messages()
Sending to a Topic
python
def publish_event(namespace: str, topic_name: str, event_type: str, payload: dict) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_topic_sender(topic_name) as sender:
            sender.send_messages(ServiceBusMessage(
                json.dumps(payload),
                subject=event_type,
                application_properties={"event_type": event_type},
            ))

Receiving Messages

Locks the message for processing; must be explicitly settled. Ensures at-least-once delivery.

python
from azure.servicebus import ServiceBusReceiveMode

def process_queue(namespace: str, queue_name: str, handler, max_messages: int = 10) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_receiver(
            queue_name,
            receive_mode=ServiceBusReceiveMode.PEEK_LOCK,
            max_wait_time=5,
        ) as receiver:
            for msg in receiver.receive_messages(max_message_count=max_messages):
                try:
                    body = json.loads(str(msg))
                    handler(body)
                    receiver.complete_message(msg)      # ack — removes from queue
                except Exception as e:
                    if msg.delivery_count >= 3:
                        receiver.dead_letter_message(   # send to DLQ
                            msg,
                            reason="MaxRetriesExceeded",
                            error_description=str(e),
                        )
                    else:
                        receiver.abandon_message(msg)   # nack — requeues with backoff
Settlement Methods
MethodEffectWhen to use
complete_messageRemoves from queueProcessing succeeded
abandon_messageReturns to queue; increments delivery_countTransient failure, will retry
dead_letter_messageMoves to DLQ with reasonPoison message, max retries exceeded
defer_messageParks with sequence number for later retrievalOut-of-order messages needing dependencies
Continuous Consumer (Long-Running)
python
import threading

def start_consumer(namespace: str, queue_name: str, handler, stop_event: threading.Event) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_receiver(queue_name, max_wait_time=5) as receiver:
            while not stop_event.is_set():
                messages = receiver.receive_messages(max_message_count=10, max_wait_time=5)
                if not messages:
                    continue
                for msg in messages:
                    try:
                        handler(json.loads(str(msg)))
                        receiver.complete_message(msg)
                    except Exception as e:
                        logger.exception("message_processing_failed", extra={"delivery_count": msg.delivery_count})
                        receiver.abandon_message(msg)

Dead-Letter Queue

python
def process_dlq(namespace: str, queue_name: str) -> list[dict]:
    dlq_path = f"{queue_name}/$deadletterqueue"
    dead_letters = []

    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_receiver(
            dlq_path,
            receive_mode=ServiceBusReceiveMode.PEEK_LOCK,
        ) as receiver:
            for msg in receiver.receive_messages(max_message_count=50):
                dead_letters.append({
                    "body": json.loads(str(msg)),
                    "reason": msg.dead_letter_reason,
                    "description": msg.dead_letter_error_description,
                    "delivery_count": msg.delivery_count,
                    "enqueued_at": msg.enqueued_time_utc,
                })
                receiver.complete_message(msg)  # drain DLQ after inspection

    return dead_letters

Alert when DLQ message count (ActiveMessageCount on the DLQ entity) exceeds zero.

Sessions (Ordered Processing)

Sessions guarantee FIFO ordering for messages with the same session_id. The queue/topic subscription must have requires_session=True.

python
# Send with session ID (all messages for the same order stay ordered)
def send_with_session(namespace: str, queue_name: str, session_id: str, body: dict) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_sender(queue_name) as sender:
            sender.send_messages(ServiceBusMessage(
                json.dumps(body),
                session_id=session_id,
            ))

# Receive a specific session
def process_session(namespace: str, queue_name: str, session_id: str, handler) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_receiver(
            queue_name,
            session_id=session_id,
        ) as receiver:
            for msg in receiver.receive_messages(max_message_count=100):
                handler(json.loads(str(msg)))
                receiver.complete_message(msg)

# Accept the next available session (let Service Bus assign)
def process_next_session(namespace: str, queue_name: str, handler) -> None:
    with ServiceBusClient(namespace, DefaultAzureCredential()) as client:
        with client.get_queue_receiver(
            queue_name,
            session_id=NEXT_AVAILABLE_SESSION,  # from azure.servicebus
        ) as receiver:
            for msg in receiver.receive_messages(max_message_count=100, max_wait_time=10):
                handler(json.loads(str(msg)))
                receiver.complete_message(msg)

Subscription Filters

python
from azure.servicebus.management import ServiceBusAdministrationClient, SqlRuleFilter, CorrelationRuleFilter

admin = ServiceBusAdministrationClient(
    fully_qualified_namespace="myns.servicebus.windows.net",
    credential=DefaultAzureCredential(),
)

# SQL filter — route by message property
admin.create_rule(
    topic_name="orders",
    subscription_name="orders-eu",
    rule_name="eu-only",
    filter=SqlRuleFilter("Region = 'EU'"),
)

# Correlation filter — cheaper, matches on built-in or application properties
admin.create_rule(
    topic_name="orders",
    subscription_name="orders-priority",
    rule_name="priority-orders",
    filter=CorrelationRuleFilter(
        subject="order.placed",
        application_properties={"priority": "high"},
    ),
)

# Remove the default catch-all rule when adding selective filters
admin.delete_rule("orders", "orders-eu", "$Default")
Filter typePerformanceFlexibilityUse when
TrueRuleFilterFastNoneSubscription receives everything (default)
CorrelationRuleFilterFastestSubject, correlation ID, app propertiesProperty-based routing
SqlRuleFilterSlowerFull SQL expressionComplex conditions across multiple properties
FalseRuleFilterFastNoneDisable subscription without deleting it

Retry Configuration

python
from azure.servicebus import ServiceBusClient
from azure.core.pipeline.policies import RetryPolicy

# SDK-level retry (network/transient errors)
client = ServiceBusClient(
    fully_qualified_namespace="myns.servicebus.windows.net",
    credential=DefaultAzureCredential(),
    retry_total=5,
    retry_backoff_factor=1.5,
    retry_backoff_max=30,
)

# Message-level retry: set max_delivery_count on the queue/subscription
# (default 10 — messages exceeding this are auto-dead-lettered by Service Bus)
admin.update_queue(
    admin.get_queue("my-queue"),
    max_delivery_count=5,
    lock_duration=timedelta(minutes=2),   # must process within this window
)

Error Handling

python
from azure.servicebus.exceptions import (
    ServiceBusError,
    ServiceBusConnectionError,
    ServiceBusAuthorizationError,
    MessageLockLostError,
    SessionLockLostError,
    MessageAlreadySettled,
)

def safe_receive(receiver, handler, msg) -> None:
    try:
        handler(json.loads(str(msg)))
        receiver.complete_message(msg)
    except MessageLockLostError:
        # Lock expired before we could settle — message will reappear
        logger.warning("lock_expired", message_id=msg.message_id)
    except MessageAlreadySettled:
        # Duplicate settle call — safe to ignore
        pass
    except ServiceBusAuthorizationError:
        # RBAC role missing — fail fast, don't retry
        raise
    except ServiceBusConnectionError as e:
        logger.error("connection_lost", error=str(e))
        raise  # outer loop should reconnect
    except Exception as e:
        logger.exception("handler_failed")
        try:
            receiver.abandon_message(msg)
        except MessageAlreadySettled:
            pass

Cost Controls

LeverImpactHow
Tier (Basic vs Standard vs Premium)HighBasic: queues only, no topics/sessions; Standard: topics + sessions; Premium: dedicated capacity, no throttling
Message sizeMediumStandard max 256 KB; Premium max 100 MB — compress large payloads before sending
Message TTLMediumSet queue/message TTL to avoid accumulating unprocessed messages that waste storage
Auto-delete on idleLowSet auto_delete_on_idle on dev/staging queues to clean up abandoned resources
Duplicate detection windowLowEnable on idempotent queues; deduplicated messages don't count toward throughput billing

See also: event-driven, azure, observability

Show full SKILL.md (321 more words)Show less

Red Flags

  • Completing a message before the handler finishes — settling with complete_message() before your handler returns means a crash loses the work with no retry opportunity; settle only after successful processing
  • No monitoring on the dead-letter queue — DLQ messages represent silently accumulating failures; set an alert on DLQ message count and review DLQ contents after every deployment
  • Lock duration shorter than max processing time — if the peek-lock expires before processing completes, the message becomes visible again and gets processed twice; set lock duration to 2–3× your p99 processing time
  • Regular receiver used with session-enabled queues — a standard ServiceBusReceiver ignores session grouping and violates ordering guarantees; use accept_next_session() for session-aware delivery
  • Catch-all topic subscription with no filters — a TrueRuleFilter subscription on a high-volume topic processes every message; use correlation or SQL filters to subscribe only to relevant message types
  • ServiceBusClient recreated per message — each client creation opens a new AMQP connection; create the client once at startup and reuse it across all sends and receives
  • Abandoning messages immediately on transient errors — abandoning re-enqueues the message for immediate retry, potentially creating a tight loop; use defer() or back off before abandoning on transient failures

Checklist

  • All clients use DefaultAzureCredential — no connection strings or SAS keys in code
  • Minimum RBAC role assigned: Data Sender for producers, Data Receiver for consumers
  • Receive mode is PEEK_LOCK for all reliable processing — not RECEIVE_AND_DELETE
  • All messages explicitly settled: complete, abandon, or dead_letter — no silent drops
  • delivery_count checked before settling; poison messages sent to DLQ with reason and description
  • DLQ monitored — alert fires when ActiveMessageCount on /$deadletterqueue exceeds 0
  • max_delivery_count set on queues/subscriptions (not left at default 10 without review)
  • lock_duration set long enough to cover worst-case processing time
  • Sessions used for entities requiring ordered or correlated processing
  • Subscription $Default rule deleted when selective CorrelationRuleFilter or SqlRuleFilter is added
  • SDK client reused across calls — not instantiated per message
  • Message TTL set to prevent unbounded queue depth on abandoned consumers

© kid-sid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/azure-service-bus of kid-sid/claude-spellbook.

Open the folder on GitHubat commit a7c2ac9

Compare with similar skills

Azure Service Bus next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Azure Service Bus compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Azure Service Bus this skillkid-sid/claude-spellbook190—~4.2kAutomated safety check: PassMIT
Azure Service Bus for Pythonmicrosoft/skills3.1k—~2.6kAutomated safety check: PassMIT
Azure Servicebus TSmicrosoft/skills3.1k5 repos~1.8kAutomated safety check: PassMIT
Azure Servicebus Dotnetmicrosoft/skills3.1k5 repos~2.8kAutomated safety check: PassMIT
Messagingcodewithmukesh/dotnet-claude-kit7561 repos~2.7kAutomated safety check: PassMIT
Azure Servicebus Rustsickn33/agentic-awesome-skills47k1 repos~2kAutomated safety check: PassMIT

Similar skills

  • Official

    Reference for the Azure Service Bus Python SDK: queues, topics and subscriptions, sending and receiving messages, receive modes and DefaultAzureCredential authentication.

    3.1k GitHub stars~2.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Azure Servicebus TS

    microsoft/skills

    Official

    Build messaging applications using Azure Service Bus SDK for JavaScript (@azure/service-bus).

    3.1k GitHub starsUsed in 5 repos~1.8k tokens
    Backend & APIsAuto-check passed
  • Azure Servicebus Dotnet

    microsoft/skills

    Official

    Azure Service Bus SDK for .NET. An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 5 repos~2.8k tokens
    Backend & APIsAuto-check passed
  • Messaging

    codewithmukesh/dotnet-claude-kit

    Asynchronous messaging patterns for .NET applications. An agent skill from codewithmukesh/dotnet-claude-kit.

    756 GitHub starsUsed in 1 repo~2.7k tokens
    Backend & APIsAuto-check passed
  • Azure Servicebus Rust

    sickn33/agentic-awesome-skills

    Azure Service Bus library for Rust. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • Azure Servicebus Py

    aiskillstore/marketplace

    Azure Service Bus SDK for Python messaging. An agent skill from aiskillstore/marketplace.

    433 GitHub starsUsed in 4 repos~2.1k tokens
    Backend & APIsAuto-check passed

More from kid-sid/claude-spellbook

All 55 skills in this repo
  • Accessibility

    kid-sid/claude-spellbook

    A skill your agent uses when building or reviewing UI components for keyboard and screen reader compatibility, adding ARIA to custom widgets, auditing a page for WCAG AA conformance, or preparing…

    190 GitHub stars~3.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Agentex

    kid-sid/claude-spellbook

    A skill your agent uses when building, wiring, or debugging an Agentex agent — choosing agent type, configuring acp.py and manifest.yaml, using adk.messages or adk.state, or resolving…

    190 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • AI Engineer

    kid-sid/claude-spellbook

    A skill your agent uses when building production LLM applications — designing RAG pipelines, choosing vector databases, implementing agent orchestration, optimizing cost, or adding AI safety…

    190 GitHub stars~3.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Angular

    kid-sid/claude-spellbook

    A skill your agent uses when building or refactoring Angular applications — choosing between signals, RxJS, and NgRx for state, configuring routing with guards and lazy loading, optimizing change…

    190 GitHub stars~5k tokensUpdated 2 mo ago
    Auto-check passed
  • API Design

    kid-sid/claude-spellbook

    A skill your agent uses when designing new REST endpoints, reviewing an existing API contract, adding pagination or filtering, planning a versioning strategy, or building a public or partner-facing…

    190 GitHub stars~3.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Auth

    kid-sid/claude-spellbook

    A skill your agent uses when implementing login flows, issuing or validating JWTs, setting up OAuth2/OIDC with a provider, designing role-based or attribute-based access control, securing API…

    190 GitHub stars~3.2k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Azure Service Bus

What does Azure Service Bus do?

A skill your agent uses when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages…. Azure Service Bus is an agent skill from kid-sid/claude-spellbook. Use when implementing reliable message processing with Azure Service Bus — choosing between queues and topics, configuring peek-lock settlement, handling dead-lettered messages, or enforcing ordered processing with sessions.

When should I use Azure Service Bus?

Azure Service Bus fits situations like: implementing reliable message processing with Azure Service Bus — choosing between queues and topics; configuring peek-lock settlement; handling dead-lettered messages; enforcing ordered processing with sessions.

How do I install Azure Service Bus in Claude Code?

Run `npx skills add kid-sid/claude-spellbook --skill azure-service-bus -a claude-code`. Or copy the skill folder (skills/azure-service-bus in kid-sid/claude-spellbook) into .claude/skills/azure-service-bus in your project. Claude Code loads it when a task matches its description.

How do I install Azure Service Bus in Codex?

Run `npx skills add kid-sid/claude-spellbook --skill azure-service-bus -a codex`. Or copy the skill folder (skills/azure-service-bus in kid-sid/claude-spellbook) into .agents/skills/azure-service-bus in your project. Codex loads it when a task matches its description.

Can I use Azure Service Bus in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kid-sid/claude-spellbook --skill azure-service-bus -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azure-service-bus, .gemini/skills/azure-service-bus, .github/skills/azure-service-bus and .opencode/skills/azure-service-bus in your project.

What does Azure Service Bus need to run?

SKILL.md names no scripts, command-line tools or credentials: Azure Service Bus is instructions for the agent only. Our summary lists: Python 3.

Does Azure Service Bus access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Azure Service Bus safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Azure Service Bus use?

Azure Service Bus is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Azure Service Bus use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Azure Service Bus?

Skills that share tags, products or a category with Azure Service Bus: Azure Service Bus for Python (microsoft/skills, 3.1k stars), Azure Servicebus TS (microsoft/skills, 3.1k stars), Azure Servicebus Dotnet (microsoft/skills, 3.1k stars) and Messaging (codewithmukesh/dotnet-claude-kit, 756 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Azure Service Bus?

kid-sid (a GitHub user) maintains it in kid-sid/claude-spellbook, which has 190 GitHub stars. The repository holds 55 skills in this directory. The repository was last updated on August 5, 2026.

Source: kid-sid/claude-spellbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.