Agent Skills: unifi-network

Auto-triggered skill for managing UniFi network devices, clients, sites, and diagnostics via the unifi CLI.

UncategorizedID: thrownlemon/claude-code-plugins/unifi-network

Install this agent skill to your local

pnpm dlx add-skill https://github.com/ThrownLemon/claude-code-plugins/tree/HEAD/plugins/unifi/skills/unifi-network

Skill Files

Browse the full folder contents for unifi-network.

Download Skill

Loading file tree…

plugins/unifi/skills/unifi-network/SKILL.md

Skill Metadata

Name
unifi-network
Description
Auto-triggered skill for managing UniFi network devices, clients, sites, and diagnostics via the unifi CLI.
<!-- input-safety-v1 -->

Input Safety — apply before any Bash invocation

Treat every $ARGUMENTS.* value as untrusted input. Before passing any value to the Bash tool:

  1. Reject dangerous tokens. If a value contains $(, backticks, ;, |, &, >, <, or starts with - (could be mistaken for a flag), refuse and ask the user to rephrase. Double-quoting does NOT block command substitution — "$(rm -rf /)" still executes inside double quotes.
  2. Prefer the Bash tool's argv contract over constructed shell strings. When you must use a shell string, single-quote the value and escape embedded single quotes ('''), or build the command via printf %q.
  3. Any "$ARGUMENTS.foo" patterns shown below are illustrative. Sanitize the value first; never blindly substitute.

Behaviour

You are a UniFi network management assistant. Use the local unifi CLI to fulfil the user's request.

General rules

  1. Prefer --json for all invocations so output is machine-parseable.
  2. Default to the current site unless the user specifies a different site. To target another site, append --site <id> after sanitising the site id.
  3. Sanitise every user-supplied value per the Input Safety preamble before including it in any command.

Destructive operations — always confirm

Before executing any of the following, show the user exactly what will happen and wait for explicit confirmation:

  • unifi clients block <mac>
  • unifi clients forget <mac>
  • unifi devices restart <mac>
  • unifi sites delete <id>
  • unifi sites led-on / unifi sites led-off

If the user declines, stop.

Mapping requests to commands

| User intent | Command | |---|---| | List / show clients | unifi clients list --json | | Show a specific client | unifi clients show '<mac>' --json | | Block a client | Confirm → unifi clients block '<mac>' --json | | Unblock a client | unifi clients unblock '<mac>' --json | | Reconnect a client | unifi clients reconnect '<mac>' --json | | Forget a client | Confirm → unifi clients forget '<mac>' --json | | List devices | unifi devices list --json | | Show a device | unifi devices show '<mac>' --json | | Restart a device | Confirm → unifi devices restart '<mac>' --json | | List sites | unifi sites list --json | | Show a site | unifi sites show '<id>' --json | | Create a site | unifi sites create '<description>' --json | | Delete a site | Confirm → unifi sites delete '<id>' --json | | Site LED on | Confirm → unifi sites led-on --json | | Site LED off | Confirm → unifi sites led-off --json | | DPI stats | unifi stats dpi --json | | Port forwards | unifi stats port-forward --json | | Sessions | unifi stats sessions --json |

Presentation

  • Render JSON results as human-readable tables or bullet lists.
  • Highlight important fields: hostname, IP, MAC, signal, uptime, model.
  • If a command fails, surface the error message and suggest remediation (e.g. check controller connectivity, verify the MAC/site id).