M5 Onboard
End-to-end onboarding for a freshly-plugged-in M5Stack ESP32 device (Cardputer...
Install
npx skills add anthropics/claude-plugins-official --skill m5-onboard -g -a claude-code -y- Repository
- anthropics/claude-plugins-official45.7k
- Category
- Design
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
End-to-end onboarding for a freshly-plugged-in M5Stack ESP32 device (Cardputer, Cardputer-Adv, Core, CoreS3, Stick), detect on USB, flash UIFlow 2.0 firmware, and install the Claude Buddy MicroPython app bundle. Use whenever the user plugs in or wants to flash/provision/reset an M5Stack or ESP32 board, or says "m5-onboard go".
M5Stack Onboarding
This skill automates the full cold-start workflow for an M5Stack ESP32 device: detect on USB, identify model, flash UIFlow 2.0, and push a MicroPython app bundle onto /flash/ so the device boots into user software. The apps we ship (Claude Buddy, Snake, Hello) talk over BLE or USB. The workflow runs on macOS, Linux, and Windows; the skill was developed against an M5Stack Basic v2.6 (CH9102 bridge, ESP32-D0WDQ6-V3, 16 MB flash) and generalized to cover the rest of the Core family, with the Cardputer-Adv (ESP32-S3, native USB) as the current default target.
Where the scripts live
This skill ships as part of the cwc-makers plugin for reference, but the executable scripts and the buddy/ app bundle live in a local clone of https://github.com/moremas/build-with-claude (the /maker-setup command creates this clone). Run every scripts/*.py invocation below from inside that clone's onboard/ directory so --apps buddy resolves to the sibling buddy/device/ payload.
When to use
Use this when a user plugs in an M5Stack device and wants it provisioned. The decision tree:
- Fresh/unknown device → run
onboard.py --apps buddyend-to-end (detect → identify → flash → install apps). This is the default path. - Already-flashed device, user just wants apps installed/refreshed → run
install_apps.py --src buddy(or any--src <path>to a directory of.pyfiles). - Flashed device, something feels broken → run
smoke_test.py(I2C + LCD + speaker + button check). - User wants to know what's on the bus / what the device can do →
smoke_test.py.
If multiple devices are plugged in, ask which port to target, don't guess. If the user is provisioning a device they previously worked with (e.g. "same thing as last time" or "another Buddy"), default to --apps buddy unless they say otherwise.


