# Send Sphero Mini Control to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "sphero-mini",
    "name": "Sphero Mini Control",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/JonesChi/sphero-mini",
    "canonicalUrl": "https://clawhub.ai/JonesChi/sphero-mini",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/sphero-mini",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sphero-mini",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "references/examples.md",
      "references/api.md",
      "references/troubleshooting.md",
      "README.md",
      "scripts/draw_square.py",
      "scripts/draw_star.py"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "sphero-mini",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T10:01:14.680Z",
      "expiresAt": "2026-05-08T10:01:14.680Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sphero-mini",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sphero-mini",
        "contentDisposition": "attachment; filename=\"sphero-mini-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "sphero-mini"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/sphero-mini"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/sphero-mini",
    "downloadUrl": "https://openagent3.xyz/downloads/sphero-mini",
    "agentUrl": "https://openagent3.xyz/skills/sphero-mini/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sphero-mini/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sphero-mini/agent.md"
  }
}
```
## Documentation

### Sphero Mini Control

Control your Sphero Mini robot ball via Bluetooth Low Energy using Python and bleak.

### Features

🎨 LED Control - Change main LED color and back LED intensity
🎯 Movement - Roll in any direction at variable speeds
🎲 Random Mode - Cat play mode with unpredictable movements
📐 Draw Shapes - Squares, stars, circles with programmable patterns
🔋 Power Management - Wake, sleep, and check battery status
🧭 Heading Control - Reset and control orientation
🖥️ Cross-platform - Works on macOS, Windows, and Linux (uses bleak, not bluepy)

### 1. Install Dependencies

All platforms:

pip3 install bleak

### 2. Find Your Sphero Mini's MAC/UUID

macOS/Windows:
Use the included scan script:

python3 scripts/scan_sphero.py

Look for a device named like "SM-XXXX" (Sphero Mini).

### 3. Update MAC Address

Edit the scripts and replace SPHERO_MAC with your device's address.

### Scan for Sphero Mini

python3 scripts/scan_sphero.py

### Change Color

import asyncio
from sphero_mini_bleak import SpheroMini

async def change_color():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # Set to red
    await sphero.setLEDColor(255, 0, 0)
    await asyncio.sleep(2)
    
    await sphero.disconnect()

asyncio.run(change_color())

### Roll Forward

import asyncio
from sphero_mini_bleak import SpheroMini

async def roll_forward():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # Roll forward at speed 100
    await sphero.roll(100, 0)
    await asyncio.sleep(3)
    
    # Stop
    await sphero.roll(0, 0)
    await sphero.disconnect()

asyncio.run(roll_forward())

### 🐱 Cat Play Mode (Random Movement)

python3 scripts/cat_play.py

Makes Sphero move randomly for 1 minute with color changes - perfect for playing with cats!

### 📐 Draw Shapes

# Draw a square
python3 scripts/draw_square.py

# Draw a star
python3 scripts/draw_star.py

### 🎨 Color Control

# Set specific color
python3 scripts/set_color.py red
python3 scripts/set_color.py 255 0 128  # Custom RGB

### Movement

# Roll (speed: 0-255, heading: 0-359 degrees)
await sphero.roll(speed=100, heading=0)    # Forward
await sphero.roll(100, 90)                  # Right
await sphero.roll(100, 180)                 # Backward
await sphero.roll(100, 270)                 # Left
await sphero.roll(0, 0)                     # Stop

### LED Control

# Main LED color (RGB values 0-255)
await sphero.setLEDColor(red=255, green=0, blue=0)      # Red
await sphero.setLEDColor(0, 255, 0)                     # Green
await sphero.setLEDColor(0, 0, 255)                     # Blue
await sphero.setLEDColor(128, 0, 128)                   # Purple

# Back LED brightness (0-255)
await sphero.setBackLED(255)  # Full brightness
await sphero.setBackLED(0)    # Off

### Power Management

# Wake from sleep
await sphero.wake()

# Go to sleep (low power, BLE still on)
await sphero.sleep()

# Check battery voltage
voltage = await sphero.getBatteryVoltage()
print(f"Battery: {voltage}V")

### Tips

Wake Sphero: Shake it to wake from deep sleep before connecting
Connection timeout: If connection fails, shake Sphero and try again
Finding Sphero: After scripts finish, Sphero is set to white for easy visibility
Cat safety: Use soft surfaces when playing with cats to avoid damage

### Example: Cat Play Mode

The cat play mode script makes Sphero:

Move in random directions (40-120 speed)
Change colors randomly (6 vibrant colors)
Stop unpredictably (30% chance for brief pauses)
Run for exactly 1 minute
End with white color so you can find it

Perfect for entertaining cats! 🐱

### Cannot Connect

Shake Sphero to wake it up
Ensure it's not connected to the Sphero Edu app
Check MAC/UUID address is correct
Try increasing timeout in sphero_mini_bleak.py

### Sphero Doesn't Move

Call await sphero.wake() first
Wait 1-2 seconds after waking
Check battery level

### Colors Don't Change

Add await asyncio.sleep(0.5) between color changes
Ensure you called await sphero.wake()

### Library Credits

This skill uses:

sphero_mini_win by trflorian - Sphero Mini control library using bleak
bleak - Cross-platform Bluetooth Low Energy library

Note: This library is for Sphero Mini only. For other Sphero models (BB8, SPRK+, Bolt), use pysphero instead.

### Custom Patterns

Create your own movement patterns:

async def figure_eight():
    # Draw a figure-8 pattern
    for i in range(2):  # Two loops
        for heading in range(0, 360, 10):
            await sphero.roll(80, heading)
            await asyncio.sleep(0.1)

### Color Cycling

async def rainbow():
    colors = [
        (255, 0, 0), (255, 127, 0), (255, 255, 0),
        (0, 255, 0), (0, 0, 255), (75, 0, 130), (148, 0, 211)
    ]
    for r, g, b in colors:
        await sphero.setLEDColor(r, g, b)
        await asyncio.sleep(1)

### Documentation

SKILL.md — This file
references/api.md — Complete API reference
references/troubleshooting.md — Common issues and solutions
scripts/ — Ready-to-use example scripts

### License

MIT
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: JonesChi
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T10:01:14.680Z
- Expires at: 2026-05-08T10:01:14.680Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/sphero-mini)
- [Send to Agent page](https://openagent3.xyz/skills/sphero-mini/agent)
- [JSON manifest](https://openagent3.xyz/skills/sphero-mini/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/sphero-mini/agent.md)
- [Download page](https://openagent3.xyz/downloads/sphero-mini)