Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/iot-forge/m5stack-skills/tab5npx skills add iot-forge/m5stack-skills --skill tab5git clone --depth 1 https://github.com/iot-forge/m5stack-skillsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00236 | $0.03229 |
| Opus 5 | $0.00118 | $0.01614 |
| Sonnet 5 | $0.00047 | $0.00646 |
| Haiku 4.5 | $0.00024 | $0.00323 |
Grade A, and why
m5stack-tab5 scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 189 lines — stays where its author put it; the contents beside it link to each section on GitHub.
M5Stack Tab5 development
The Tab5 is M5Stack's ESP32-P4-based touchscreen terminal: a 5" 1280x720 MIPI-DSI display, MIPI-CSI camera, ES8388 audio codec with AEC front-end, BMI270 IMU, RX8130CE RTC, RS485 port, and a removable 2000mAh NP-F550 battery, with an ESP32-C6-MINI-1U handling WiFi 6 / BLE / Thread / Zigbee as a co-processor over SDIO. It targets industrial HMI, kiosk, and IoT-gateway use cases rather than being a general "big Core2" — expect RS485, camera, and multi-protocol wireless to matter more here than on other M5Stack Controllers. Official docs: https://docs.m5stack.com/en/core/Tab5
Use this skill to write correct firmware for it (Arduino, PlatformIO, ESP-IDF, or UIFlow2/MicroPython), to explain what a pin or peripheral does, or to debug hardware-facing code (wrong I2C address, WiFi not connecting, touch not responding, display not initializing, etc).
Important: this is an ESP32-P4, not an ESP32/ESP32-S3
Most M5Stack Controllers (Cardputer Adv, Core2, CoreS3, AtomS3, ...) run on
an ESP32 or ESP32-S3 — Xtensa cores. The Tab5's main SoC is an
ESP32-P4, which is RISC-V, has no built-in WiFi/Bluetooth radio,
and needs its own toolchain target (esp32p4)/board entry. WiFi and BLE
come from a separate ESP32-C6 co-processor on the board, bridged over
SDIO — this is why WiFi init code looks different from every other M5Stack
board (see "WiFi needs pin setup" below). Don't reuse ESP32/ESP32-S3-specific
assumptions (Xtensa intrinsics, single-chip WiFi init, etc.) when writing
Tab5 firmware.
For chip-level capability questions about either SoC that aren't about this
board's specific wiring, see the esp32-p4 and esp32-c6 skills,
shipped in the esp32-chips plugin of this same marketplace
(claude plugin install esp32-chips@m5stack if they aren't present).
Hardware revisions: two different display/touch chip sets exist
M5Stack changed the integrated display/touch driver partway through production. Both revisions expose the same 5" 1280x720 panel and the same touch behavior at the application level (M5GFX/M5Unified abstracts it), but if the user is doing low-level LCD/touch driver work, check which one they have:
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 189 lines · 236 tokens per session scan A ba3a010dcc3d
m5stack-tab5 is a skill published in the GitHub repository iot-forge/m5stack-skills (2 stars, last pushed 8d ago), licensed MIT. It adds 236 tokens to every session and 3,229 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
ble
Operate ESP-Claw BLE: initialize BLE, advertise, handle connections, process events, and inspect module state.
nucleo-release
Build, gate, and ship NucleoOS to the Cardputer — firmware via OTA and the web/SD payload via the device file API. Use when the user asks to release, deploy, flash, OTA, sync the SD, or push a web app to the device. Covers the one-command release, firmware-only and SD-only paths, and the gotchas (PIN, .gz shadowing…
nucleo-native-app
Scaffold and implement a NucleoOS native firmware app (C++) correctly — anti-flicker, poll handler, RAM discipline, input routing, registration. Use when creating or fixing a native app in firmware/components/nucleoapp/.
nucleo-release-dual
Build and ship NucleoOS to BOTH Cardputer units — the original and the ADV — in one pass. Use when the user wants to release/build/OTA/flash for both boards, the ADV and non-ADV Cardputers, or two devices at once. Encodes the key fact that it's ONE universal binary (runtime board auto-detect), so you build once and…
cap_router_mgr
Manage router automation rules: list/get/add/update/delete/reload with strict rulejson format.
light_switch
Turn a board light on or off, set LED strip color or brightness, and control GPIO lights. Requires boardhardwareinfo skill.