Embedded Iot Mentor
alirezarezvani/claude-skills
Mentor for embedded and IoT hardware projects. An agent skill from alirezarezvani/claude-skills.
Tunes a deployed RuView WiFi-sensing system without changing code: firmware sdkconfig variants, NVS provisioning over serial, channel and MAC filtering, edge processing tiers and mesh slotting.
$ npx skills add ruvnet/RuView --skill ruview-configure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ruvnet/RuView ruview-configure --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .claude/skills/ruview-configure && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .claude/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configureType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ruvnet/RuView --skill ruview-configure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ruvnet/RuView ruview-configure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .agents/skills/ruview-configure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .agents/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ruvnet/RuView --skill ruview-configure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ruvnet/RuView ruview-configure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .cursor/skills/ruview-configure && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .cursor/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ruvnet/RuView.git --path plugins/ruview/skills/ruview-configure--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ruvnet/RuView --skill ruview-configure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ruvnet/RuView ruview-configure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .gemini/skills/ruview-configure && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .gemini/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ruvnet/RuView ruview-configureInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ruvnet/RuView --skill ruview-configure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .github/skills/ruview-configure && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .github/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ruvnet/RuView --skill ruview-configure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ruvnet/RuView ruview-configure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruvnet/RuView.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ruview/skills/ruview-configure .opencode/skills/ruview-configure && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ruview-configure" agent skill from https://github.com/ruvnet/RuView/tree/main/plugins/ruview/skills/ruview-configure into .opencode/skills/ruview-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruview-configure", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ruview-configureTunes a deployed RuView WiFi-sensing system without changing code: firmware sdkconfig variants, NVS provisioning over serial, channel and MAC filtering, edge processing tiers and mesh slotting.
The skill covers two configuration layers. Firmware build-time config picks an sdkconfig variant file, such as the 8MB default with real WiFi CSI, a 4MB variant for the ESP32-S3 SuperMini with the display disabled and dual OTA slots, or a Heltec N16R2 variant, copied into place before a rebuild; it warns never to test in mock mode because a fall-threshold Kconfig bug only appeared with real CSI data.
Runtime device config is written to the csi_cfg NVS namespace over the serial port by provision.py, whose flags cover WiFi credentials and the aggregator's UDP sink, TDM mesh slot and total node count for multi-node setups, an edge-processing tier (0 off, 1 stats, 2 vitals), detection thresholds for presence and fall sensitivity, vitals window and subcarrier count, channel selection or multi-frequency hopping, MAC filtering, and Cognitum Seed integration with a seed URL, token and zone.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0ef6b96. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargopythonnodedockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
RuView Deployment Configuration loads about 1.7k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 559 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Glob, GrepAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ruvnet/RuView at commit 0ef6b96, republished under its MIT licence (© ruvnet). 559 words, ~1,651 tokens.
.claude/skills/ruview-configure/SKILL.md (or your agent's skills folder).Everything you can tune in a RuView deployment, from a one-line provision flag to a full mesh + Cognitum Seed setup.
| Variant | File | When |
|---|---|---|
| 8MB (default) | firmware/esp32-csi-node/sdkconfig.defaults.template | ESP32-S3 8MB, full feature set, real WiFi CSI |
| 4MB | firmware/esp32-csi-node/sdkconfig.defaults.4mb | ESP32-S3 SuperMini 4MB — display disabled, dual OTA slots (partitions_4mb.csv, ~1.856 MB each) |
| Heltec N16R2 | firmware/esp32-csi-node/sdkconfig.defaults.heltec_n16r2 | Heltec boards |
Switch: cp firmware/esp32-csi-node/sdkconfig.defaults.<variant> firmware/esp32-csi-node/sdkconfig.defaults, then rebuild (see ruview-hardware-setup). Never test in mock mode — the Kconfig fall-threshold bug only showed up with real CSI.
provision.py writes the csi_cfg NVS namespace over the serial port. Run python firmware/esp32-csi-node/provision.py --help for the authoritative flag list (on Windows force PYTHONUTF8=1 PYTHONIOENCODING=utf-8 — the help text contains non-ASCII and crashes under cp1252).
python firmware/esp32-csi-node/provision.py --port COM8 \
--ssid "WiFi" --password "secret" \
--target-ip 192.168.1.20 --target-port 5005 \ # aggregator UDP sink (port default 5005)
--node-id 1 \ # 0-255
--channel 6 --filter-mac AA:BB:CC:DD:EE:FF # ADR-060: pin channel + filter transmitter| Flag group | Flags | Notes |
|---|---|---|
| WiFi / sink | --ssid --password --target-ip --target-port (5005) --node-id | --node-id 0-255 |
| TDM mesh | --tdm-slot --tdm-total | 0-based slot index + total node count — this is how multi-node mesh is slotted |
| Edge processing | --edge-tier {0,1,2} | 0=off, 1=stats, 2=vitals (ADR-041) |
| Detection thresholds | --pres-thresh (50) --fall-thresh (15000 → 15.0 rad/s²) | raise --fall-thresh to cut false falls in high-traffic areas (issue #263) |
| Vitals | --vital-win (300 frames) --vital-int (1000 ms) --subk-count (32, top-K subcarriers) | |
| Channel / hopping | --channel (1-14 / 36-177, overrides AP auto-detect) --filter-mac --hop-channels (1,6,11) --hop-dwell (200 ms) | omit --channel + set --hop-channels for ADR-061 multi-freq hopping; omit --filter-mac to capture all transmitters |
| Cognitum Seed | --seed-url (http://10.1.10.236) --seed-token (Bearer, from pairing) --zone (lobby) | |
| Swarm | --swarm-hb (30 s) --swarm-ingest (5 s) | heartbeat + vector ingest intervals |
| Mode | --dry-run (build NVS bin, don't flash) --baud (460800) --force-partial |
⚠️ NVS namespace is replaced wholesale (issue #391). Flashing rewrites the entire
csi_cfgnamespace — any key you don't pass on the CLI is erased. Always pass the full set you want, or use--force-partialknowingly. Read the device's current values off the serial boot log first (adaptive_ctrl/csi_collectorlines) if you're unsure.
scripts/generate_nvs_matrix.py (subprocess-first — the esp_idf_nvs_partition_gen API changed across versions).cd v2
cargo run -p wifi-densepose-sensing-server -- --help
# Common modes:
cargo run -p wifi-densepose-sensing-server # live sink, default port
cargo run -p wifi-densepose-sensing-server -- --pretrain --dataset data/csi/ --pretrain-epochs 50
cargo run -p wifi-densepose-sensing-server -- --train --dataset data/mmfi/ --epochs 100 --save-rvf model.rvf
cargo run -p wifi-densepose-sensing-server -- --model model.rvf --embed
cargo run -p wifi-densepose-sensing-server -- --model model.rvf --build-index envwifiscan server (multi-BSSID, ADR-022): cargo run -p wifi-densepose-sensing-server consumes wifi-densepose-wifiscan output; use neighbour APs as free radar illuminators.
Small Rust/WASM programs that run on the ESP32 itself — no internet, instant response. See docs/edge-modules/ and docs/adr/ADR-041-*. Each module declares its CSI feature inputs (8-dim feature vectors) and an RVF store target (Cognitum Seed). Configure which modules ship in a build via the firmware component config; configure their thresholds via NVS keys.
Helper scripts that mirror edge-module logic on the host (useful for tuning before flashing):
scripts/apnea-detector.js, gait-analyzer.js, material-classifier.js, passive-radar.js, mincut-person-counter.js, device-fingerprint.js, mesh-graph-transformer.js, material-detector.js.
--target-ip sink.wifi-densepose-hardware (v2/crates/wifi-densepose-hardware/src/esp32/).ruview-advanced-sensing.ESP32 streams CSI → bridge forwards to a Cognitum Seed for persistent RVF memory, kNN over environments, and an Ed25519 witness chain.
node scripts/rf-scan.js --port 5006 # live RF room scan → Seed
node scripts/snn-csi-processor.js --port 5006 # SNN real-time learning on-SeedSee docs/tutorials/cognitum-seed-pretraining.md and ADR-028 (capability audit + witness verification).
wifi-densepose-api (Axum) — config via wifi-densepose-config crate; see example.env / pyproject.toml for the v1 Python service.docker run -p 3000:3000 ruvnet/wifi-densepose:latest (env-var overrides documented in README.md / docker/).:3000; nvsim dashboard (ADR-092) is separate.docs/adr/ (96 ADRs) — esp. ADR-022 (wifiscan), ADR-028 (capability audit), ADR-041 (edge modules), ADR-060 (channel/MAC override), ADR-061 (QEMU + mesh), ADR-081 (adaptive CSI mesh kernel)CLAUDE.md / CLAUDE.local.md — crate map, build env, QEMU CI fixesexample.env, Makefile, firmware/esp32-csi-node/© ruvnet, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/ruview/skills/ruview-configure of ruvnet/RuView.
Open the folder on GitHubat commit 0ef6b96
RuView Deployment Configuration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| RuView Deployment Configuration this skillruvnet/RuView | 97k | — | ~1.7k | Automated safety check: Notes | MIT | |
| Embedded Iot Mentoralirezarezvani/claude-skills | 28k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Esp32 Firmware Engineeralxv2016/folloup-sticky | 116 | 1 repos | ~3.8k | Automated safety check: Pass | GPL-3.0 | |
| Embedded DebugFastLED/FastLED | 7.5k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Embedded DebuggerAdancurusul/embedded-debugger-mcp | 202 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Auto EmbeddedDunCanYounG-1/MICU-auto-embedded | 253 | — | ~1.6k | Automated safety check: Pass | CC-BY-NC-4.0 |
alirezarezvani/claude-skills
Mentor for embedded and IoT hardware projects. An agent skill from alirezarezvani/claude-skills.
alxv2016/folloup-sticky
ESP32 firmware engineering for ESP-IDF projects. An agent skill from alxv2016/folloup-sticky.
FastLED/FastLED
Firmware crash analysis, stack trace decoder, and register dump interpreter for ESP32/ARM/AVR platforms.
Adancurusul/embedded-debugger-mcp
Embedded hardware debugging workflow for probe-rs targets using embedded-debugger-mcp.
DunCanYounG-1/MICU-auto-embedded
全平台嵌入式 AI 开发框架(对标 Trellis):把 RIPER-5 五阶段协议 + 四文件记忆 + 分层架构门禁 + Scout/Builder/Verifier 多 Agent + 24 个工具调用技能(build/flash/debug/serial/can/modbus/visa/static/memory/rtos/scons),做成『装进工程、项目级 hook…
BlueAndi/Pixelix
A skill your agent uses when writing, reviewing, or refactoring C/C++ firmware code in this repository (src/, lib/, test/) — creating or editing .h/.hpp/.cpp files, applying MISRA-oriented and…
ruvnet/RuView
Reference for RuView's research-grade WiFi sensing features: multistatic fusion, cross-viewpoint geometry, persistent field models, RF tomography, intention signals and mesh security.
ruvnet/RuView
Runs RuView's WiFi sensing applications: presence, vital signs, activity and fall detection, pose estimation, sleep monitoring and environment mapping.
ruvnet/RuView
Covers the RuView `wifi-densepose` command line binary, its Axum REST API and the WebAssembly builds for browsers and ESP32, for embedding or scripting RuView.
ruvnet/RuView
Drives a web browser through the agent-browser CLI, using compact accessibility snapshots with element refs in place of the full DOM to keep context small.
ruvnet/RuView
Brings a RuView CSI sensing node online by building ESP32-S3 or ESP32-C6 firmware, flashing the board, provisioning WiFi and checking the serial output.
ruvnet/RuView
Sets up and runs 60 GHz and 24 GHz mmWave radar sensing on ESP32 boards in RuView, alone or fused with WiFi CSI.
Works with
Categories
Tunes a deployed RuView WiFi-sensing system without changing code: firmware sdkconfig variants, NVS provisioning over serial, channel and MAC filtering, edge processing tiers and mesh slotting. The skill covers two configuration layers. Firmware build-time config picks an sdkconfig variant file, such as the 8MB default with real WiFi CSI, a 4MB variant for the ESP32-S3 SuperMini with the display disabled and dual OTA slots, or a Heltec N16R2 variant, copied into place before a rebuild; it warns never to test in mock mode because a fall-threshold Kconfig bug only appeared with real CSI data.
RuView Deployment Configuration fits situations like: switching a RuView node's firmware build between the 8MB, 4MB or Heltec variants; provisioning a new ESP32 node's WiFi, mesh slot and detection thresholds over serial; reducing false fall-detection alerts in a high-traffic deployment; connecting a node to Cognitum Seed for a given zone.
Run `npx skills add ruvnet/RuView --skill ruview-configure -a claude-code`. Or copy the skill folder (plugins/ruview/skills/ruview-configure in ruvnet/RuView) into .claude/skills/ruview-configure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ruvnet/RuView --skill ruview-configure -a codex`. Or copy the skill folder (plugins/ruview/skills/ruview-configure in ruvnet/RuView) into .agents/skills/ruview-configure in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ruvnet/RuView --skill ruview-configure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ruview-configure, .gemini/skills/ruview-configure, .github/skills/ruview-configure and .opencode/skills/ruview-configure in your project.
Going by SKILL.md and its folder, RuView Deployment Configuration needs the command-line tools its instructions call (cargo, python, node and docker). Our summary lists: Python, to run provision.py; An ESP32-S3 device connected over serial. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep.
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
RuView Deployment Configuration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with RuView Deployment Configuration: Embedded Iot Mentor (alirezarezvani/claude-skills, 28k stars), Esp32 Firmware Engineer (alxv2016/folloup-sticky, 116 stars), Embedded Debug (FastLED/FastLED, 7.5k stars) and Embedded Debugger (Adancurusul/embedded-debugger-mcp, 202 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ruvnet (a GitHub user) maintains it in ruvnet/RuView, which has 96,981 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 9, 2026.
Source: ruvnet/RuView on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.