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 skills add claudius-ars/embedded-agent-skills --skill gpio-configgit clone --depth 1 https://github.com/claudius-ars/embedded-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/claudius-ars/embedded-agent-skills/gpio-config)<a href="https://agentmods.dev/skills/claudius-ars/embedded-agent-skills/gpio-config"><img src="https://agentmods.dev/badge/skills/claudius-ars/embedded-agent-skills/gpio-config/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/claudius-ars/embedded-agent-skills/gpio-config"><img src="https://agentmods.dev/badge/skills/claudius-ars/embedded-agent-skills/gpio-config.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00229 | $0.04037 |
| Opus 5 | $0.00114 | $0.02018 |
| Sonnet 5 | $0.00046 | $0.00807 |
| Haiku 4.5 | $0.00023 | $0.00404 |
Grade A, and why
gpio-config 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 10d 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 — 357 lines — stays where its author put it; the contents beside it link to each section on GitHub.
1 · Platform Detection
Explicit Detection
| Keywords/Patterns | Platform |
|---|---|
| Raspberry Pi, RPi, BCM2835, BCM2711, BCM2712, config.txt, dtoverlay, gpiozero, RPi.GPIO, pigpio, /boot/firmware/ | RPi |
| ESP32, ESP-IDF, WROOM, WROVER, menuconfig, sdkconfig, Arduino (with ESP context), esp_err_t, gpio_config(), ESP32-S2, S3, C3, C6 | ESP32 |
Model/Variant Detection
RPi Variants:
| Identifier | Models Covered | Key Differences |
|---|---|---|
| rpi3 | Pi 3B/3B+ | UART/BT conflict on mini-UART, 2× PWM channels, config at /boot/config.txt |
| rpi4 | Pi 4B | 4× PWM channels, dual SPI, config at /boot/firmware/config.txt |
| rpi5 | Pi 5 | RP1 southbridge (different peripheral base), 4× PWM, config at /boot/firmware/config.txt |
| rpi_zero2w | Zero 2W | Same SoC as Pi 3, UART/BT conflict, limited current budget |
ESP32 Variants:
| Identifier | Key Differences |
|---|---|
| esp32 | 34 GPIO, dual-core, ADC2 conflicts with WiFi, Hall sensor on GPIO36/39 |
| esp32s2 | 43 GPIO, single-core, no Bluetooth, native USB, no ADC2/WiFi conflict |
| esp32s3 | 45 GPIO, dual-core, BLE5, native USB, no ADC2/WiFi conflict |
| esp32c3 | 22 GPIO, single-core RISC-V, BLE5 only, no ADC2/WiFi conflict |
| esp32c6 | 30 GPIO, RISC-V, WiFi 6, 802.15.4, no ADC2/WiFi conflict |
ESP32 Modules:
| Module | Additional Reserved Pins |
|---|---|
| WROOM | GPIO6–11 (flash SPI) |
| WROVER | GPIO6–11 (flash SPI) + GPIO16–17 (PSRAM) |
Ambiguity Rules
- If platform cannot be determined from context: ask the user. NEVER silently default to a platform.
- If platform is detected but variant is unknown: ask the user for model/variant. Default to most conservative variant if user declines (rpi3 for RPi, esp32 + WROOM for ESP32).
- Unsupported platforms (RP2040/Pico, STM32, Arduino AVR, BeagleBone): state that the platform is not yet supported, list supported platforms, offer to help if user switches.
2 · Reference Loading
ALWAYS load the platform pin database. Load other files only when their trigger condition is met.
What ships with it
45 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.
- .claude-plugin/plugin.json 389 B
- assets/.gitkeep 0 B
- references/common-devices.md 29 KB
- references/electrical-constraints.md 13 KB
- references/platforms/.gitkeep 0 B
- references/platforms/esp32-pins.md 13 KB
- references/platforms/esp32-specifics.md 16 KB
- references/platforms/rpi-overlays.md 19 KB
- references/platforms/rpi-pins.md 17 KB
- references/protocol-quick-ref.md 15 KB
- scripts/generate_config.py 15 KB runs code
- scripts/platforms/__init__.py 8.1 KB runs code
- scripts/platforms/.gitkeep 0 B
- scripts/platforms/base.py 29 KB runs code
- scripts/platforms/esp32.py 74 KB runs code
- scripts/platforms/rpi.py 58 KB runs code
- scripts/validate_pinmap.py 7.6 KB runs code
- SUBMISSION_CHECKLIST.md 2.8 KB
- tests/__init__.py 0 B runs code
- tests/conftest.py 2.7 KB runs code
- tests/fixtures/regression_esp32_basic.json 258 B
- tests/fixtures/regression_esp32_flash_pin.json 288 B
- tests/fixtures/regression_esp32s3_flash_pin.json 304 B
- tests/fixtures/regression_esp32s3_strapping.json 567 B
- tests/fixtures/regression_rpi_basic.json 210 B
- tests/fixtures/s1_rpi_i2c_spi.json 1.4 KB
- tests/fixtures/s10_esp32_strapping.json 474 B
- tests/fixtures/s11a_rpi_bmesd.json 1000 B
- tests/fixtures/s11b_esp32_bmesd.json 1.0 KB
- tests/fixtures/s2_rpi_complex.json 1.5 KB
- tests/fixtures/s3_rpi_can.json 1.0 KB
- tests/fixtures/s4_rpi_uart_onewire.json 1.3 KB
- tests/fixtures/s5a_rpi_duplicate_conflict.json 458 B
- tests/fixtures/s5b_rpi_shared_i2c.json 511 B
- tests/fixtures/s6_esp32_i2c_spi.json 1.5 KB
- tests/fixtures/s7a_esp32_adc1_wifi.json 304 B
- tests/fixtures/s7b_esp32_adc2_wifi.json 297 B
- tests/fixtures/s8a_esp32_rtc_gpio.json 290 B
- tests/fixtures/s8b_esp32_non_rtc.json 274 B
- tests/fixtures/s9_esp32s3_multi.json 1.6 KB
- tests/test_cross_platform.py 5.8 KB runs code
- tests/test_esp32_scenarios.py 13 KB runs code
- tests/test_regression.py 6.5 KB runs code
- tests/test_rpi_scenarios.py 9.5 KB runs code
- tests/test_syntax_validation.py 5.9 KB runs code
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.
- 10d ago First seen · 357 lines · 229 tokens per session scan A a66672d6cd3b
gpio-config is a skill published in the GitHub repository claudius-ars/embedded-agent-skills (19 stars, last pushed 7mo ago), licensed MIT. It adds 229 tokens to every session and 4,037 once invoked, about $0.0011 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-30.
Other skills, from other repositories
m5stack-cap-lora-1262
Hardware reference and firmware helper for the M5Stack Cap LoRa-1262 (SKU U214) — a snap-on cap for the Cardputer Adv (K132-Adv) and CardputerZero that carries a Semtech SX1262 sub-GHz LoRa radio (868–923 MHz, +22 dBm TX, external RP-SMA antenna) and an ATGM336H-6N GNSS receiver (GPS/QZSS/BeiDou/Galileo/GLONASS, UART…
new-device-skill
Build or update an M5Stack hardware skill in this marketplace — a Controller (a board that runs firmware, like Core2 or AtomS3), a Unit (a peripheral you drive from a Controller, like a ToF sensor or a relay), or a Chip (an Espressif SoC capability layer, like esp32-c6). Use whenever adding a new board/unit/chip to…
m5stack-tab5
Hardware reference and development helper for the M5Stack Tab5 (product code C145) — an ESP32-P4-based 5" touchscreen IoT/industrial terminal with an ESP32-C6 wireless co-processor, MIPI-DSI display, MIPI-CSI camera, ES8388 audio codec, BMI270 IMU, RX8130CE RTC, RS485, and a removable NP-F550 battery. Use this skill…
m5stack-core2
Hardware reference and development helper for the M5Stack Core2 family — a 2.0" touchscreen ESP32 (classic, Xtensa LX6) Controller built around an AXP192 power management IC, ILI9342C display, FT6336U capacitive touch, BM8563 RTC, and (on original/1.1/1.3 revisions) an MPU6886 or BMI270 IMU. Covers the plain Core2…
esp32-c6
Chip-level ESP-IDF capability reference for the ESP32-C6 SoC (single-core RISC-V HP core + RISC-V LP core, WiFi 6 + BLE 5.3 + Thread/Zigbee) — what the chip can do, distinct from any board's wiring. Use when a user wants to exploit ESP32-C6 hardware — WiFi 6/BLE/802.15.4 radio coexistence (Thread Border Router, Zigbee…
esp32-p4
Chip-level ESP-IDF capability reference for the ESP32-P4 SoC (dual-core RISC-V HP cores + a RISC-V LP core) — what the chip can do, distinct from any board's wiring. Use when a user wants to exploit ESP32-P4 hardware — MIPI-CSI/DSI with the on-chip ISP, hardware JPEG encode/decode, hardware H.264 encode, PPA/2D-DMA…