Asus Router

Monitor and manage Asus routers running AsusWRT firmware. Supports status checks, device listing, presence detection, AiMesh mesh topology, WAN diagnostics,...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 17 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description align with the code and instructions: the skill uses the asusrouter library and aiohttp to query/manage an AsusWRT router, reads a local config, and optionally uses the system ping binary for latency checks — all expected for a router management tool.
Instruction Scope
SKILL.md stays on-task (install deps, create config.yaml with router credentials, run router.py commands). The runtime code reads config.yaml (and fallback env vars), connects to the router over HTTP(S), and prints results — no evidence of reading unrelated system files or posting data to third-party endpoints. Note: SKILL.md does not mention the environment variables the script will accept as fallbacks (ASUS_ROUTER_HOST, ASUS_ROUTER_USER, ASUS_ROUTER_PASS).
Install Mechanism
This is an instruction-only skill (no install spec) and asks users to pip install asusrouter and aiohttp, which is proportional. Minor omission: router.py attempts to import yaml (PyYAML) to parse config.yaml and falls back to JSON if PyYAML is missing, but SKILL.md does not mention installing PyYAML; users editing YAML should install PyYAML or provide JSON config.
Credentials
The skill does not declare required env vars, but router.py supports fallback environment variables (ASUS_ROUTER_HOST, ASUS_ROUTER_USER, ASUS_ROUTER_PASS) for router credentials. Requesting/storeing router admin credentials is expected for this functionality, but users should be aware credentials are required and can be provided either in config.yaml or via those environment variables.
Persistence & Privilege
The skill does not request always-on inclusion and does not modify other skills or system-wide settings. It runs on-demand and only connects to the router specified in local config or env vars.
Assessment
This skill is coherent with its stated purpose, but take these precautions before installing: - You must provide router admin credentials (config.yaml or the environment variables ASUS_ROUTER_HOST / ASUS_ROUTER_USER / ASUS_ROUTER_PASS). Do not commit config.yaml to source control. - The SKILL.md asks you to pip install asusrouter and aiohttp; also install PyYAML if you intend to use a YAML config (router.py attempts to import yaml). Consider installing in a virtual environment. - Review the third-party asusrouter library (and its dependencies) before installing to ensure you trust it, since it will communicate directly with your router. - Run the tool locally on a trusted machine or in an isolated environment if you are concerned about exposing router credentials. - Keep the router firmware and any client libraries up to date. If you need the skill to run autonomously or on a server, ensure credentials are stored securely (not in public repos) and use least-privilege accounts if possible.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
aimeshvk97a7yw7q4dgzfx47z7yxw6v1983190gasusvk97a7yw7q4dgzfx47z7yxw6v1983190giotvk97a7yw7q4dgzfx47z7yxw6v1983190glatestvk97a7yw7q4dgzfx47z7yxw6v1983190gmeshvk97a7yw7q4dgzfx47z7yxw6v1983190gmonitoringvk97a7yw7q4dgzfx47z7yxw6v1983190gnetworkingvk97a7yw7q4dgzfx47z7yxw6v1983190gpresence-detectionvk97a7yw7q4dgzfx47z7yxw6v1983190groutervk97a7yw7q4dgzfx47z7yxw6v1983190gsmart-homevk97a7yw7q4dgzfx47z7yxw6v1983190g

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📡 Clawdis
Binsping

SKILL.md

Asus Router Management

Manage Asus routers via the asusrouter Python library. Works with any Asus router running stock AsusWRT or Merlin firmware.

Setup

1. Install dependencies

pip install asusrouter aiohttp

2. Create config file

Copy config.example.yaml to config.yaml and fill in your router details:

cp skills/asus-router/config.example.yaml skills/asus-router/config.yaml

Edit config.yaml with your router's IP, username, and password.

3. Verify connection

python3 skills/asus-router/router.py status

Supported Routers

Any Asus router with the AsusWRT web interface:

  • ZenWiFi (XT8, XT12, XD6, etc.) — full AiMesh support
  • RT-AX series (RT-AX86U, RT-AX88U, etc.)
  • GT-AX gaming series
  • Merlin firmware variants
  • AiMesh nodes (RP-AX56, RP-AX58, etc.)

Commands

All commands use router.py. Activate your venv first if using one.

Quick Status

python3 router.py status          # WAN, CPU, RAM, mesh nodes, client count
python3 router.py status --json   # Machine-readable output

List Connected Devices

python3 router.py clients              # All devices
python3 router.py clients --online     # Online only
python3 router.py clients --filter "iphone"   # Search by name/IP/MAC
python3 router.py clients --json       # JSON output

Who's Home (Presence Detection)

python3 router.py who

Checks for known devices defined in config.yaml to determine who's home.

WAN Details

python3 router.py wan          # IP, gateway, DNS, lease, dual-WAN
python3 router.py wan --json

AiMesh Topology

python3 router.py mesh         # Which clients connect to which node
python3 router.py mesh --json

Find a Device

python3 router.py find "samsung"
python3 router.py find "192.168.1.100"
python3 router.py find "AA:BB:CC:DD:EE:FF"

Network Latency Check

python3 router.py ping

Pings targets defined in config.yaml (default: gateway + Cloudflare + Google).

Reboot Router

python3 router.py reboot --confirm

⚠️ Requires --confirm flag. Causes 2-3 min downtime.

Common Tasks

"Is the internet down?"

  1. status — check WAN link state
  2. ping — check latency to external IPs
  3. wan — check DHCP lease and DNS

"What's using bandwidth?"

clients --online --json — check rx_speed/tx_speed fields

"Who's home?"

who — checks for devices listed in config.yaml under known_devices

"Why is WiFi slow?"

  1. mesh — check client distribution across nodes
  2. status — check CPU/RAM (high CPU = overloaded)
  3. find <device> — check signal strength (rssi)

Configuration

All settings live in config.yaml. See config.example.yaml for the full template.

Key settings:

  • router.host — Router IP address
  • router.username — Admin username
  • router.password — Admin password
  • router.ssl — Use HTTPS (default: false)
  • known_devices — Devices for presence detection
  • ping_targets — Custom ping targets for latency checks

JSON Output

Add --json to any command for machine-readable output. Useful for cron jobs, heartbeat checks, and alerting.

Integration with Home Assistant

For persistent monitoring, also install ha-asusrouter via HACS: https://github.com/Vaskivskyi/ha-asusrouter

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…