cardputer-buddy
anthropics/claude-plugins-official
Iterate on Cardputer-Adv MicroPython apps after provisioning—push code, watch logs, run REPL commands.
What is cardputer-buddy?
Cardputer Buddy manages the MicroPython app bundle on an M5Stack Cardputer device after initial setup via m5-onboard. Use it to add new apps, push individual file changes without re-flashing, monitor device serial output, or execute one-shot commands on the device.
- Add new MicroPython apps by dropping .py files into the apps directory and pushing them over USB-serial
- Push individual changed files to the device without re-flashing the entire firmware
- Watch device serial logs in real-time to debug running apps
- Execute one-shot REPL commands on the device for testing or inspection
- Automatically scan and list all .py files in /flash/apps/ as menu entries on device boot
How to install cardputer-buddy
npx skills add https://github.com/anthropics/claude-plugins-official --skill cardputer-buddy- Cardputer device already provisioned via m5-onboard skill
- Local clone of build-with-claude repository with buddy/ directory
- USB connection to the device and its serial port identifier (e.g., /dev/cu.usbmodem1101)
- Python 3 environment with access to buddy/scripts/ tools
How to use cardputer-buddy
- 1.Identify your device's serial port using detect.py or system tools (e.g., /dev/cu.usbmodem1101, /dev/ttyACM0, COM3)
- 2.To add a new app: create a .py file in buddy/device/apps/ following the pattern in hello_cardputer.py, then run `python3 onboard/scripts/install_apps.py --port <PORT> --src buddy`
- 3.To push a single changed file: run `python3 buddy/scripts/push.py --port <PORT> --files apps/snake.py` (adjust filename as needed)
- 4.To watch device logs: run `python3 buddy/scripts/tail_serial.py --port <PORT>` and interact with the device to see output
- 5.To run a one-shot command: use `python3 buddy/scripts/repl_run.py --port <PORT> --script "import os; print(os.listdir('/flash'))"` (adjust script as needed)
Use cases
- Develop a new interactive app for the Cardputer and test it without full re-flashing cycles
- Debug a running Claude Buddy or Snake app by tailing serial output while interacting with the device
- Push a single bug fix to an existing app and verify it works on next boot
- Run quick diagnostic commands like listing files or checking memory without opening a full REPL session
- Iterate rapidly on game or utility app logic during active development
- MicroPython developers working with M5Stack Cardputer devices
- Makers building custom apps on provisioned Cardputer hardware
- Hardware enthusiasts debugging device behavior during development
- Teams extending the Claude Buddy, Snake, or Hello Cardputer app bundle
cardputer-buddy FAQ
No. Use push.py to send individual .py files over USB-serial, or use install_apps.py to add new apps. Changes take effect on the next device boot.
Create a new .py file in buddy/device/apps/ following the conventions in hello_cardputer.py (keyboard polling, font, exit), then run install_apps.py. The app will appear in the menu on next boot.
Use tail_serial.py to watch device logs in real-time while interacting with the app, or use repl_run.py to execute diagnostic commands.
Run detect.py in the onboard scripts, or check your system's device list (e.g., /dev/ on macOS/Linux, COM ports on Windows).
Yes, main.py is in buddy/device/ and scans /flash/apps/ at boot. Push changes to main.py using push.py just like any other file.
Full instructions (SKILL.md)
Source of truth, from anthropics/claude-plugins-official.
name: cardputer-buddy description: Iterate on the Cardputer-Adv MicroPython app bundle (Claude Buddy, Snake, Hello) after the device is already provisioned via m5-onboard. Use when the user wants to add a new app, push a single changed .py without re-flashing, watch device serial logs, or run a one-shot REPL command. Trigger on "add an app", "push to the cardputer", "tail the device", "run on the device", or follow-up work after /maker-setup.
Cardputer Buddy app bundle
The buddy/ directory in the local build-with-claude clone is the MicroPython payload that m5-onboard installs onto /flash/. Work inside that clone.
Device layout
/flash/
├── main.py launcher menu (replaces UIFlow's boot flow)
├── buddy_*.py shared libs (BLE, UI, state, protocol, chars)
├── burst_frames.py sprite frames
└── apps/
├── claude_buddy.py BLE client → Claude Desktop's Hardware Buddy
├── hello_cardputer.py
└── snake.py
main.py scans /flash/apps/ at boot and lists every .py as a menu entry. Drop a file into buddy/device/apps/, push it, and it appears on next boot.
Adding an app
Crib from buddy/device/apps/hello_cardputer.py — smallest example of keyboard polling, font, and exit conventions. Then push without re-flashing:
python3 onboard/scripts/install_apps.py --port <PORT> --src buddy
<PORT> is whatever detect.py reported last run (e.g. /dev/cu.usbmodem1101, /dev/ttyACM0, COM3).
Dev loop tooling (buddy/scripts/)
# Push a subset of files over USB-serial
python3 buddy/scripts/push.py --port <PORT> --files apps/snake.py
# Watch device logs
python3 buddy/scripts/tail_serial.py --port <PORT>
# One-shot REPL exec
python3 buddy/scripts/repl_run.py --port <PORT> --script "import os; print(os.listdir('/flash'))"
Related skills
More from anthropics/claude-plugins-official and the wider catalog.

claude-automation-recommender
Analyze a codebase and recommend Claude Code automations (hooks, subagents, skills, plugins, MCP servers). Use when user asks for automation recommendations, wants to optimize their Claude Code setup, mentions improving Claude Code workflows, asks how to first set up Claude Code for a project, or wants to know what Claude Code features they should use.

claude-md-improver
Audit and improve CLAUDE.md files to optimize Claude Code's project context.

claude-security
Scan codebases and changes for security vulnerabilities, then generate verified patch suggestions.

command-development
Create and manage slash commands with YAML frontmatter, dynamic arguments, and bash execution for Claude Code.

configure
Set up Discord bot token and configure channel access policy.

hook-development
Event-driven automation for Claude Code plugins with prompt-based and command hooks.