Initial commit - Claudzmo CLI tool

Claudzmo is a CLI tool for controlling Anki Cozmo robot via PyCozmo.

Features:
- Movement control (drive, turn, head, lift)
- Facial expressions (15 presets with 30fps animation)
- Text-to-speech via macOS voice synthesis
- Camera access (320x240 live feed)
- Status monitoring (battery, firmware, hardware)
- Claude Code skill integration

Architecture:
- Fresh connection per command using pycozmo.connect()
- Reliable audio playback (100% consistent)
- Simple CLI interface with argparse
- Fast execution (~1 second per command)

Built with ❤️ by Matt & Claude

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Matt Kost
2026-01-04 23:45:47 -05:00
commit 08eae0b758
5 changed files with 672 additions and 0 deletions

64
claudzmo.skill.md Normal file
View File

@@ -0,0 +1,64 @@
# claudzmo
Control Anki Cozmo robot - movement, expressions, speech, and camera.
## Usage
```bash
~/bin/claudzmo <command> [options]
# or
/Users/matt/Projects/cozmo-mcp/claudzmo <command> [options]
```
## Commands
### Movement
- `claudzmo move --distance <mm> [--speed <mm/s>]` - Move forward (positive) or backward (negative)
- `claudzmo turn --angle <degrees> [--speed <mm/s>]` - Turn in place (positive=right, negative=left)
- `claudzmo head --angle <degrees>` - Set head angle (-25 to 44 degrees)
- `claudzmo lift --height <mm>` - Set lift height (0 to 66mm)
### Expression & Speech
- `claudzmo expression --name <name> [--duration <ms>]` - Display facial expression
- Available: neutral, happiness, sadness, anger, surprise, disgust, fear, pleading, vulnerability, despair, guilt, amazement, excitement, confusion, skepticism
- `claudzmo speak --text "<text>" [--volume <0-65535>]` - Speak text (default volume: 65535)
### Sensors
- `claudzmo camera [--format jpeg|png]` - Get camera image (returns JSON with base64 image)
- `claudzmo status` - Get robot status (battery, firmware, etc.)
### Control
- `claudzmo stop` - Emergency stop all motors
## Examples
```bash
# Make Cozmo greet someone
claudzmo speak --text "Hello Matt!"
claudzmo expression --name happiness --duration 1500
# Move around
claudzmo move --distance 200 --speed 50
claudzmo turn --angle 90
claudzmo head --angle 30
# Take a photo
claudzmo camera --format jpeg
# Check status
claudzmo status
```
## Setup
Requires:
1. Cozmo robot powered on
2. Computer connected to Cozmo's WiFi network (Cozmo_XXXXX)
3. Python environment with pycozmo installed at `/Users/matt/Projects/cozmo-mcp/venv`
## Notes
- Commands connect/disconnect for each operation (ensures reliability)
- Audio uses macOS `say` command with Samantha voice
- Expressions animate smoothly at ~30fps
- Camera returns base64-encoded JPEG or PNG