chsh-sk-router-control

Controls lab Wi-Fi routers over SSH to simulate network failures for nRF device testing.

1|Updated Jan 30, 2026
One-click install
npx skills add https://github.com/chshzh/claude --skill chsh-sk-router-control-chshzh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: chsh-sk-router-control
Source: https://github.com/chshzh/claude/tree/main/skills/chsh-sk-router-control
Command: npx skills add https://github.com/chshzh/claude --skill chsh-sk-router-control-chshzh

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires paramiko.

What problem does it solve? Writing Wi-Fi reconnection and failure-recovery tests for embedded devices requires a repeatable way to disrupt the wireless environment. Manually toggling router settings is slow and error-prone; this Skill provides tested SSH commands and Python helpers to enable/disable SSIDs, reboot radios, and block clients on lab routers. ## Core Features & Use Cases - SSID Control: Instantly bring specific SSIDs up or down on ASUS RT-BE92U and Zyxel EX5700 routers using wl -i <iface> bss up/down, without restarting wireless services. - Failure Simulation: Simulate AP reboots, disable entire radio bands, or block specific clients by MAC address via iptables. - Test Patterns: Includes ready-made Python helpers for reconnection stress loops and context-manager teardown guards that always restore the SSID after a test. - Use Case: While testing an nRF device's reconnection logic, drop the 5 GHz SSID for 5 seconds, verify the device detects the disconnect, and confirm the SSID returns to the up state automatically. ## Quick Start Copy config.json.template to config.json with your router credentials, then ask Claude to bring the BE92U_5G SSID down for five seconds and back up to test device reconnection.

Frequently Asked Questions about chsh-sk-router-control

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I simulate a Wi-Fi AP outage for device reconnection testing?

Connect to the router over SSH with paramiko and run `wl -i wl1.1 bss down` to disable the SSID instantly, wait the desired outage duration, then run `wl -i wl1.1 bss up`. This takes effect immediately without restarting wireless services or affecting other SSIDs.

How to enable or disable a specific SSID on an ASUS router via SSH?

Use `wl -i <iface> bss up` or `bss down` for instant non-persistent changes, or set `nvram set wl1.1_bss_enabled=0` followed by `nvram commit` and `service restart_wireless` for changes that survive reboot. Check state with `wl -i <iface> bss`.

Does this work with OpenWrt routers like the Zyxel EX5700?

The skill lists the Zyxel EX5700 running OpenWrt as a supported router alongside the ASUS RT-BE92U. Connection details for both are loaded from config.json, though the documented wl/nvram command examples target the Asuswrt-Merlin interface map.

How do I block a specific client device by MAC address on the router?

Run `iptables -A FORWARD -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP` over SSH to block the client, and use the same command with `-D` instead of `-A` to unblock it.

Why avoid nvram commit when toggling SSIDs frequently in tests?

nvram commit writes to the router's flash memory, which wears out with frequent writes. For test loops, use `wl -i <iface> bss down/up` instead, which is instantaneous, requires no flash write, and does not restart wireless services.

What happens to other clients when restarting wireless on the router?

Running `service restart_wireless` disconnects all wireless clients for roughly 10 seconds, including the development machine if it is on Wi-Fi. Prefer per-SSID bss down/up commands when only the test SSID should be affected.