Agent skill · software engineering · anthropics

m5-onboard

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".

Why this skill is useful

Adds executable scripts for provisioning M5Stack devices that automate the entire onboarding process, which the AI cannot generate on its own.

What it needs

Requires python3 installed locally. About 12k tokens when loaded. Last updated 2026-08-07. 33,212 stars on the source repository.

What this skill does

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 buddy end-to-end (detect → identify → flash → install apps). This is the default path. Already-flashed device, user just wants apps installed/refreshed → run installapps.py --src buddy (or any --src <path> to a directory of .py files). Flashed device, something feels broken → run smoketest.py (I2C + LCD + speaker + button check). User wants to know what's on the bus / what the device can do → smoketest.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. Which variant to assume The rig this skill lives on provisions Cardputer-Adv boards overwhelmingly, so onboard.py now defaults to --variant cardputer-adv. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills anthropics/m5-onboard

View the source on GitHub

Browse the @skills marketplace