← Back to Skills Marketplace
rtaylorgraham

Asus Router

by rtaylorgraham · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
206
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install asus-router
Description
Monitor and manage Asus routers running AsusWRT firmware. Supports status checks, device listing, presence detection, AiMesh mesh topology, WAN diagnostics,...
README (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 \x3Cdevice> — 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

Usage Guidance
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.
Capability Analysis
Type: OpenClaw Skill Name: asus-router Version: 1.0.0 The asus-router skill is a legitimate management tool for AsusWRT-based routers, utilizing the 'asusrouter' Python library. The code in router.py implements standard administrative functions such as status monitoring, client listing, and rebooting (with confirmation), and it handles configuration securely using yaml.safe_load and environment variables. No evidence of malicious intent, data exfiltration, or prompt injection was found.
Capability Assessment
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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install asus-router
  3. After installation, invoke the skill by name or use /asus-router
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: status, clients, who (presence), wan, mesh, find, ping, reboot commands. Config-driven via YAML/JSON/env vars.
Metadata
Slug asus-router
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Asus Router?

Monitor and manage Asus routers running AsusWRT firmware. Supports status checks, device listing, presence detection, AiMesh mesh topology, WAN diagnostics,... It is an AI Agent Skill for Claude Code / OpenClaw, with 206 downloads so far.

How do I install Asus Router?

Run "/install asus-router" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Asus Router free?

Yes, Asus Router is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Asus Router support?

Asus Router is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Asus Router?

It is built and maintained by rtaylorgraham (@rtaylorgraham); the current version is v1.0.0.

💬 Comments