Integrate Bunny.net services (CDN, Storage, Stream, DNS, Edge Scripting, Shield, Magic Containers, Optimizer, Database). Use when building with Bunny.net APIs, deploying to Bunny CDN, uploading files to Edge Storage, managing video streaming, configuring DNS zones, writing edge scripts, setting up WAF/DDoS protection, deploying containers, or optimizing images. Triggers on "bunny", "bunnycdn", "b-cdn", "pull zone", "edge storage", "bunny stream".
npx skills add https://github.com/mrgoonie/claudekit-skills --skill bunny
Integrate with Bunny.net's cloud platform: CDN, Storage, Stream, DNS, Edge Scripting, Shield (WAF/DDoS), Magic Containers, Optimizer, and Database.
Scope: This skill handles Bunny.net API integration, configuration, and deployment. Does NOT handle other CDN providers (Cloudflare, Fastly, AWS CloudFront).
Three credential types — each API uses its own key via AccessKey header:
| Credential | Used For | Where to Find |
|-----------|----------|---------------|
| Account API Key | Core API (Pull Zones, DNS, Statistics) | Dashboard → Account Settings |
| Storage Zone Password | Edge Storage API | Dashboard → Storage Zone → FTP & API Access |
| Stream Library API Key | Stream API | Dashboard → Stream → API |
# All APIs use the same header format
curl -H "AccessKey: YOUR_KEY" -H "Content-Type: application/json" https://api.bunny.net/...
| Service | Base URL |
|---------|----------|
| Core (CDN, DNS, Zones) | https://api.bunny.net |
| Edge Storage | https://{region}.bunnycdn.com |
| Stream | https://video.bunnycdn.com |
| Shield | https://api.bunny.net (via Core) |
| Edge Scripting | https://api.bunny.net (via Core) |
Storage regions: storage (Falkenstein), uk, ny, la, sg, se, br, jh, syd
# Create pull zone
curl -X POST https://api.bunny.net/pullzone \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Name":"my-cdn","OriginUrl":"https://origin.example.com"}'
# Add custom hostname
curl -X POST https://api.bunny.net/pullzone/{id}/addHostname \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Hostname":"cdn.example.com"}'
# Purge cache
curl -X POST https://api.bunny.net/pullzone/{id}/purgeCache \
-H "AccessKey: $BUNNY_API_KEY"
# Purge single URL
curl -X POST "https://api.bunny.net/purge?url=https://cdn.example.com/file.js" \
-H "AccessKey: $BUNNY_API_KEY"
# Upload file (raw binary body, no encoding)
curl -X PUT https://storage.bunnycdn.com/{zone}/{path}/file.jpg \
-H "AccessKey: $STORAGE_PASSWORD" \
-H "Content-Type: application/octet-stream" \
--upload-file ./file.jpg
# Download file
curl -X GET https://storage.bunnycdn.com/{zone}/{path}/file.jpg \
-H "AccessKey: $STORAGE_PASSWORD" -o file.jpg
# List directory
curl https://storage.bunnycdn.com/{zone}/{path}/ \
-H "AccessKey: $STORAGE_PASSWORD"
# Delete file
curl -X DELETE https://storage.bunnycdn.com/{zone}/{path}/file.jpg \
-H "AccessKey: $STORAGE_PASSWORD"
# Create video entry
curl -X POST https://video.bunnycdn.com/library/{libId}/videos \
-H "AccessKey: $STREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"title":"My Video"}'
# Upload video (raw binary)
curl -X PUT https://video.bunnycdn.com/library/{libId}/videos/{videoId} \
-H "AccessKey: $STREAM_API_KEY" \
--data-binary '@video.mp4'
# Fetch from URL
curl -X POST https://video.bunnycdn.com/library/{libId}/videos/fetch \
-H "AccessKey: $STREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://example.com/video.mp4"}'
# Embed: <iframe src="https://iframe.mediadelivery.net/embed/{libId}/{videoId}" ...>
# Create DNS zone
curl -X POST https://api.bunny.net/dnszone \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Domain":"example.com"}'
# Add record
curl -X PUT https://api.bunny.net/dnszone/{zoneId}/records \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Type":0,"Name":"www","Value":"1.2.3.4","Ttl":300}'
# Type: 0=A, 1=AAAA, 2=CNAME, 3=TXT, 4=MX, 5=Redirect, 6=Flatten, 7=PullZone, 8=SRV, 9=CAA, 10=PTR, 11=Script, 12=NS
# Create edge script
curl -X POST https://api.bunny.net/compute/script \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Name":"my-script","ScriptType":0}'
# ScriptType: 0=Standalone, 1=Middleware
# Deploy code
curl -X POST https://api.bunny.net/compute/script/{id}/code \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Code":"export default { async fetch(request) { return new Response(\"Hello\"); }}"}'
# Publish release
curl -X POST https://api.bunny.net/compute/script/{id}/publish \
-H "AccessKey: $BUNNY_API_KEY"
# Create application
curl -X POST https://api.bunny.net/compute/container \
-H "AccessKey: $BUNNY_API_KEY" -H "Content-Type: application/json" \
-d '{"Name":"my-app","Containers":[{"Image":"nginx:latest","CpuLimit":500,"MemoryLimit":256}]}'
# Deploy
curl -X POST https://api.bunny.net/compute/container/{id}/deploy \
-H "AccessKey: $BUNNY_API_KEY"
For detailed API specs, SDKs, edge rules, token auth, Terraform, and service-specific guides:
references/bunny-core-api-reference.md — Pull Zones, Storage Zones, DNS, Statisticsreferences/bunny-storage-and-stream-reference.md — Edge Storage HTTP/FTP, Stream video lifecyclereferences/bunny-edge-scripting-and-shield-reference.md — Edge Scripts, WAF, DDoS, Rate Limitingreferences/bunny-optimizer-containers-database-reference.md — Dynamic Images, Magic Containers, Bunny Databasereferences/bunny-integrations-and-sdks-reference.md — Official SDKs, CMS plugins, Terraform, token authTo fetch latest docs: WebFetch https://docs.bunny.net/{service}/{topic}.md
Full docs index: https://docs.bunny.net/llms.txt
BUNNY_API_KEY=your-account-api-key
BUNNY_STORAGE_PASSWORD=your-storage-zone-password
BUNNY_STORAGE_ZONE=your-storage-zone-name
BUNNY_STORAGE_REGION=storage # or uk, ny, la, sg, se, br, jh, syd
BUNNY_STREAM_API_KEY=your-stream-library-api-key
BUNNY_STREAM_LIBRARY_ID=your-library-id
Analyze text and images for harmful content with customizable blocklists.
Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video.
Azure OpenAI SDK for .NET. Client library for Azure OpenAI and OpenAI services. Use for chat completions, embeddings, image generation, audio transcription, and assistants.
Azure AI Voice Live SDK for .NET. Build real-time voice AI applications with bidirectional WebSocket communication.
Build real-time voice AI applications with bidirectional WebSocket communication.
Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK.
Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking.
Expert Mermaid diagram creation, validation, and rendering with dual-engine output (SVG/PNG/ASCII). Supports all 20+ diagram types including C4 architecture, AWS architecture-beta with service icons, flowcharts, sequence, ERD, state, class, mindmap, timeline, git graph, sankey, and more. Features code-to-diagram analysis, batch rendering, 15+ themes, and syntax validation. Use when users ask to create diagrams, visualize architecture, render mermaid files, generate ASCII diagrams, document system flows, model databases, draw AWS infrastructure, analyze code structure, or anything involving "mermaid", "diagram", "flowchart", "architecture diagram", "sequence diagram", "ERD", "C4", "ASCII diagram". Do NOT use for non-Mermaid image generation, data plotting with chart libraries, or general documentation writing.
Take mrgoonie/bunny from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.