Agent skill · Design & Presentation

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

Anthropic33,591★ · +352/wk · 2 repos on radarProfile →
claude-codeApache-2.0
Install
npx skills add anthropics/claude-plugins-official --skill m5-onboard --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 23 KB
Bundled scripts: none
Path: plugins/cwc-makers/skills/m5-onboard/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 33,027 · +241 this week
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

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

How it works

The skill guides an automated cold-start workflow: detect on USB, identify the board, fetch the UIFlow 2.0 firmware, flash the device, and install apps into /flash/ so the device boots into user software. It uses a main orchestrator script (scripts/onboard.py) that calls sub-scripts in order, handling reboots and progress reporting. It provides specific command lines for actions:

  • Fresh card provisioning: python3 scripts/onboard.py --apps buddy (default path for Cardputer-Adv)
  • Install only: python3 scripts/install_apps.py --port <PORT> --src buddy
  • Partial run or smoke tests: python3 scripts/smoke_test.py It requires running the Bash interaction in background mode with log streaming for Claude Code's Bash tool and instructs on user prompts during the FLASH stage to press hardware buttons for download mode (BtnG0 and BtnRST sequence). It explains port discovery, firmware fetching, flashing with specific baud rates, and post-flash app installation behavior, including BLE and NVS boot options for Cardputer-Adv.

When to use it

Use this when a user plugs in an M5Stack device and wants it provisioned. The decision tree includes: fresh/unknown device (default onboard), already-flashed device with apps to install (install_apps.py --src buddy), device with issues (smoke_test.py), and user curiosity about device capabilities (smoke_test.py). If multiple devices are connected, it asks which port to target. Default variant is Cardputer-Adv; explicit variants can be chosen via onboard.py --variant.

Stages

  1. Detect — enumerate ports and identify ESP32-S3 native USB or USB-UART bridges.
  2. Identify — read factory-test partition and I2C to suggest firmware variant.
  3. Fetch firmware — download UIFlow 2.0 binary to temp dir via M5Burner API.
  4. Flash — use esptool write_flash with 460800 baud for UART bridges or 115200 baud with --no-stub for native-USB S3; handle recovery if needed.
  5. Install apps — paste-mode REPL upload of app files into /flash/, reboot via repl_reset, and adjust boot behavior to start our bundle.
  6. Smoke test — optional checks for I2C, LCD, speaker, and buttons.

What it can touch

The toolset touches serial ports, firmware binaries, and the device filesystem: attempt to install apps into /flash/, modify NVS boot options when a root main.py is present, and perform reboots via REPL utilities.

Caveats

Native-USB ESP32-S3 boards require a physical BtnG0+BtnRST sequence to enter download mode; software-based entry is not available. Do not unplug during FLASH. Baud rates: 460800 for UART bridges, 115200 with --no-stub on native USB. NVS boot_option handling may be required (boot_option=2 for Cardputer-Adv). The workflow is designed for macOS, Linux, and Windows; default variant assumes Cardputer-Adv unless specified. The bundle places a root main.py under /flash/ and leaves UIFlow launcher intact otherwise.

From the SKILL.md

# 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 → ident

What's inside
Steps it walks through
  1. Where the scripts live
  2. When to use
  3. Which variant to assume
  4. The workflow
  5. Relaying physical steps to the user (REQUIRED)
  6. Stages
  7. Critical gotchas (baked into the scripts — do not second-guess)
  8. After provisioning (what the user sees on the device)
  9. Files
  10. Dependencies
  11. Platform notes
Commands it runs
sudo usermod -aG dialout $USER
More from claude-plugins-official
All skills →
About this skill
What does the m5-onboard skill do?

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

How do I install it?

Run `npx skills add anthropics/claude-plugins-official --skill m5-onboard --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From anthropics/claude-plugins-official, a repository with 33,027 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going