Token导航 LogoToken导航

Agent Skill · 开发

bunny-net(兔子网)

bunny-net 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

bunny-net 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 15,745。

总安装 564周安装 24GitHub Stars 公开资料未说明下载 198核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:bunny-net(兔子网)
来源仓库:https://github.com/simonstrumse/vibelabs-skills
仓库路径:skills/bunny-net
安装命令:
npx skills add https://github.com/simonstrumse/vibelabs-skills --skill bunny-net
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/simonstrumse/vibelabs-skills --skill bunny-net

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

bunny-net 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合围绕仓库状态和代码变更进行整理。它可协助管理 Bunny.net CDN 服务,包括存储、视频流和边缘计算资源。使用时需提供 API 密钥和存储区域配置,确保凭据安全。

安装前应确认是否会触发网络请求或敏感信息写入,遵守服务条款。该技能输出为操作指南,需人工执行相关操作。

来源仓库内路径:skills/bunny-net

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/simonstrumse/vibelabs-skills --skill bunny-net;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

bunny-net 怎么安装?

在终端执行 npx skills add https://github.com/simonstrumse/vibelabs-skills --skill bunny-net。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

bunny-net 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

bunny-net 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

bunny-net 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

bunny-net 用的人多吗?

公开数据是累计安装 564 次,近一周安装 24 次,下载 198 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

bunny-net 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
bunny-net

兔子网 · 本页

564—接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Bunny.net Skill

Bunny.net is a comprehensive CDN and media platform offering content delivery, storage, video streaming, image optimization, AI image generation, edge computing, DNS, and security services.

Account Configuration

API Key: Set as environment variable BUNNY_API_KEY

Storage Key: Set as environment variable BUNNY_STORAGE_KEY (per storage zone)

Base URLs:

ServiceBase URL
APIhttps://api.bunny.net
Storage (Frankfurt)https://storage.bunnycdn.com
Storage (UK)https://uk.storage.bunnycdn.com
Storage (NY)https://ny.storage.bunnycdn.com
Storage (LA)https://la.storage.bunnycdn.com
Storage (Singapore)https://sg.storage.bunnycdn.com

Authentication

Management API

curl -H "AccessKey: $BUNNY_API_KEY" \
  https://api.bunny.net/storagezone

Storage API

Uses storage zone password as API key (different from main API key):

curl -H "AccessKey: $BUNNY_STORAGE_KEY" \
  https://storage.bunnycdn.com/<zone-name>/<path>

1. Edge Storage (File Hosting)

Store and serve files globally via CDN.

Storage Zones

ZoneIDPasswordCDN URL
your-storage-zoneYOUR_ZONE_IDYOUR_STORAGE_PASSWORDhttps://your-zone.b-cdn.net

Upload File

curl -X PUT "https://storage.bunnycdn.com/your-storage-zone/images/photo.jpg" \
  -H "AccessKey: $BUNNY_STORAGE_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg

Download File

curl "https://storage.bunnycdn.com/your-storage-zone/images/photo.jpg" \
  -H "AccessKey: $BUNNY_STORAGE_KEY" \
  -o photo.jpg

List Files

curl "https://storage.bunnycdn.com/your-storage-zone/images/" \
  -H "AccessKey: $BUNNY_STORAGE_KEY"

Delete File

curl -X DELETE "https://storage.bunnycdn.com/your-storage-zone/images/photo.jpg" \
  -H "AccessKey: $BUNNY_STORAGE_KEY"

Python Upload Example

import os
import requests
from pathlib import Path

def upload_to_bunny(local_path: str, remote_path: str):
    """Upload file to Bunny.net storage"""
    STORAGE_KEY = os.environ.get("BUNNY_STORAGE_KEY")
    ZONE = os.environ.get("BUNNY_STORAGE_ZONE", "your-storage-zone")
    CDN_URL = os.environ.get("BUNNY_CDN_URL", "https://your-zone.b-cdn.net")

    url = f"https://storage.bunnycdn.com/{ZONE}/{remote_path}"

    with open(local_path, "rb") as f:
        response = requests.put(
            url,
            headers={"AccessKey": STORAGE_KEY},
            data=f
        )

    if response.status_code == 201:
        cdn_url = f"{CDN_URL}/{remote_path}"
        return cdn_url
    else:
        raise Exception(f"Upload failed: {response.status_code}")

2. CDN (Pull Zones)

Content delivery network with global edge locations.

CDN Configuration

  • Pull Zone ID: YOUR_PULLZONE_ID
  • CDN URL: https://your-zone.b-cdn.net
  • Connected Storage: your-storage-zone (ID: YOUR_ZONE_ID)
  • Geo Zones: US, EU, Asia, South America, Africa (all enabled)
  • Cache TTL: 30 days

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","StorageZoneId":YOUR_ZONE_ID,"OriginType":2}'

Purge Cache

# Purge single URL
curl -X POST "https://api.bunny.net/purge?url=https://your-zone.b-cdn.net/image.jpg" \
  -H "AccessKey: $BUNNY_API_KEY"

Pull Zone Features

  • Edge Rules: Custom request/response handling
  • Token Authentication: Secure URLs with time-limited tokens
  • WebSockets: Real-time connections supported
  • Origin Shield: Reduce origin load
  • Custom Hostnames: Use your own domain
  • SSL/TLS: Free SSL certificates

3. Bunny Optimizer (Image Transformation)

Real-time image optimization and transformation via URL parameters.

Base URL

https://your-zone.b-cdn.net/<path>?<transformations>

Transformation Parameters

ParameterDescriptionExample
widthResize width?width=800
heightResize height?height=600
aspect_ratioForce aspect?aspect_ratio=16:9
cropCrop region?crop=x,y,width,height
focus_cropFocus point crop?focus_crop=x,y,scale,aspect
qualityJPEG quality (1-100)?quality=85
formatOutput format?format=webp
blurBlur effect?blur=10
sharpenSharpen image?sharpen=true
brightnessAdjust brightness?brightness=4
contrastAdjust contrast?contrast=4
saturationColor saturation?saturation=20
gammaGamma correction?gamma=25
tintColor tint?tint=ffeeee
flopHorizontal flip?flop=true

Example Transformations

# Resize to 800px width, WebP format
https://your-zone.b-cdn.net/photo.jpg?width=800&format=webp

# Thumbnail with aspect ratio
https://your-zone.b-cdn.net/photo.jpg?width=400&aspect_ratio=1:1

# Optimized with quality and blur
https://your-zone.b-cdn.net/photo.jpg?quality=75&blur=5

4. Bunny AI (Image Generation)

Generate images via URL using AI models.

URL Structure

https://your-zone.b-cdn.net/.ai/img/<engine>/<blueprint>/<seed>/<prompt>.jpg

Available Engines

EngineCodeResolutionCost
DALLE-2 256pxdalle-256256x256$0.016
DALLE-2 512pxdalle-512512x512$0.018
DALLE-2 1024pxdalle-10241024x1024$0.020
Stable Diffusion v1.5sd15-512512x512$0.001
Stable Diffusion v2.1sd21-512512x512$0.001
Stable Diffusion v2.1sd21-768768x768$0.030

Examples

# Generate avatar with DALLE
https://your-zone.b-cdn.net/.ai/img/dalle-512/default/12345/cute-pixel-bunny.jpg

# Stable Diffusion landscape
https://your-zone.b-cdn.net/.ai/img/sd21-768/default/67890/tropical-island-sunset.jpg

Prompt Tips

  • Hyphens become spaces: bunny-eating-carrots -> "bunny eating carrots"
  • File extension is stripped
  • Results cached for 3 months

DALLE Best For

  • Concept art, pixel art
  • Illustrations, abstract
  • 3D renders

Stable Diffusion Best For

  • Photo-realistic images
  • Landscapes, architecture
  • Traditional/digital art

5. Bunny Stream (Video Hosting)

Professional video hosting with transcoding, DRM, and analytics.

Key Features

  • Adaptive Streaming: Auto quality adjustment
  • Multiple Codecs: H.264, H.265, VP9, AV1
  • DRM Support: Widevine, FairPlay, MediaCage
  • Captions: Multi-language subtitles
  • Analytics: Heatmaps, view counts, engagement

Video Library API

# Create video library
curl -X POST "https://api.bunny.net/videolibrary" \
  -H "AccessKey: $BUNNY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"Name":"my-videos"}'

Upload Video

# 1. Create video entry
curl -X POST "https://video.bunnycdn.com/library/{libraryId}/videos" \
  -H "AccessKey: {library-api-key}" \
  -H "Content-Type: application/json" \
  -d '{"title":"My Video"}'

# 2. Upload video file
curl -X PUT "https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}" \
  -H "AccessKey: {library-api-key}" \
  --data-binary @video.mp4

Get Embed Code

curl "https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}" \
  -H "AccessKey: {library-api-key}"

Video Player Embed

<iframe src="https://iframe.mediadelivery.net/embed/{libraryId}/{videoId}"
  loading="lazy"
  style="border:none;width:100%;aspect-ratio:16/9"
  allow="accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture"
  allowfullscreen>
</iframe>

6. Edge Scripting (Serverless)

Run JavaScript at the edge for custom logic.

Use Cases

  • URL redirects
  • Header modification
  • A/B testing
  • Geo-based routing
  • Authentication
  • HTML/JSON transformation

Create Edge Script

curl -X POST "https://api.bunny.net/edgescript" \
  -H "AccessKey: $BUNNY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"Name":"my-script","Type":1}'

Example Script

// Redirect based on country
export default {
  async fetch(request, env) {
    const country = request.headers.get('cf-ipcountry');
    if (country === 'NO') {
      return Response.redirect('https://no.example.com' + request.url.pathname);
    }
    return fetch(request);
  }
}

7. Magic Containers (Edge Container Hosting)

Run Docker containers at edge locations.

Features

  • Auto-scaling
  • Health checks
  • Environment variables
  • Regional provisioning
  • Rolling updates
  • GitHub Actions integration

Use Cases

  • Gaming backends
  • AI inference
  • Image processing
  • API services

8. Bunny Shield (Security)

Comprehensive security suite.

Features

FeatureDescription
WAFWeb Application Firewall with custom rules
DDoSLayer 3/4/7 DDoS protection
Bot DetectionAI-powered bot filtering
Rate LimitingPer-IP and custom rate limits
Access ListsIP allowlist/blocklist
Upload ScanningMalware detection

Create Shield Zone

curl -X POST "https://api.bunny.net/shield/zones" \
  -H "AccessKey: $BUNNY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"PullZoneId":YOUR_PULLZONE_ID}'

9. Bunny DNS

Managed DNS with global anycast.

Features

  • IPv4 + IPv6 support
  • DDoS protection
  • DNSSEC support
  • Fast propagation

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"}'

Quick Reference: API Endpoints

Storage Zones

MethodEndpointDescription
GET/storagezoneList all zones
POST/storagezoneCreate zone
GET/storagezone/{id}Get zone details
DELETE/storagezone/{id}Delete zone

Pull Zones

MethodEndpointDescription
GET/pullzoneList all zones
POST/pullzoneCreate zone
GET/pullzone/{id}Get zone details
POST/pullzone/{id}Update zone
DELETE/pullzone/{id}Delete zone

Purge

MethodEndpointDescription
POST/purge?url=<url>Purge single URL

Video Libraries

MethodEndpointDescription
GET/videolibraryList libraries
POST/videolibraryCreate library
GET/videolibrary/{id}Get library

Python Service Template

"""
Bunny.net Media Service
"""
import os
import requests
from pathlib import Path
from typing import Optional
import mimetypes

class BunnyService:
    """Bunny.net CDN and Storage Service"""

    def __init__(self, api_key=None, storage_key=None, storage_zone=None, cdn_url=None):
        self.api_key = api_key or os.environ.get("BUNNY_API_KEY")
        self.storage_key = storage_key or os.environ.get("BUNNY_STORAGE_KEY")
        self.storage_zone = storage_zone or os.environ.get("BUNNY_STORAGE_ZONE", "your-storage-zone")
        self.cdn_url = cdn_url or os.environ.get("BUNNY_CDN_URL", "https://your-zone.b-cdn.net")
        self.storage_url = "https://storage.bunnycdn.com"

    def upload(self, local_path: str, remote_path: str) -> str:
        """Upload file and return CDN URL"""
        url = f"{self.storage_url}/{self.storage_zone}/{remote_path}"
        content_type = mimetypes.guess_type(local_path)[0] or "application/octet-stream"

        with open(local_path, "rb") as f:
            response = requests.put(
                url,
                headers={
                    "AccessKey": self.storage_key,
                    "Content-Type": content_type
                },
                data=f
            )

        response.raise_for_status()
        return f"{self.cdn_url}/{remote_path}"

    def delete(self, remote_path: str) -> bool:
        """Delete file from storage"""
        url = f"{self.storage_url}/{self.storage_zone}/{remote_path}"
        response = requests.delete(url, headers={"AccessKey": self.storage_key})
        return response.status_code == 200

    def list_files(self, path: str = "") -> list:
        """List files in directory"""
        url = f"{self.storage_url}/{self.storage_zone}/{path}/"
        response = requests.get(url, headers={"AccessKey": self.storage_key})
        return response.json()

    def purge_cache(self, path: str):
        """Purge CDN cache for path"""
        url = f"https://api.bunny.net/purge?url={self.cdn_url}/{path}"
        response = requests.post(url, headers={"AccessKey": self.api_key})
        return response.status_code == 200

    def get_optimized_url(self, path: str, width: int = None, format: str = None, quality: int = None) -> str:
        """Get optimized image URL with transformations"""
        url = f"{self.cdn_url}/{path}"
        params = []
        if width:
            params.append(f"width={width}")
        if format:
            params.append(f"format={format}")
        if quality:
            params.append(f"quality={quality}")
        if params:
            url += "?" + "&".join(params)
        return url

# Usage
bunny = BunnyService()

# Upload image
cdn_url = bunny.upload("photo.jpg", "images/photo.jpg")
print(f"Uploaded: {cdn_url}")

# Get optimized versions
webp_url = bunny.get_optimized_url("images/photo.jpg", width=800, format="webp", quality=85)
thumb_url = bunny.get_optimized_url("images/photo.jpg", width=200, format="webp")

Documentation Links

平台分布

Codex

35.08%
按下载量换算69

Claude

29.88%
按下载量换算59

Cursor

21.8%
按下载量换算43

Gemini CLI

10.58%
按下载量换算21

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills