unifi
UniFi Network Monitoring Skill
Monitor and manage UniFi network infrastructure through the UniFi Controller API.
Device Information
User's UniFi Setup:
- UniFi Security Gateway (USG3) - Router/Gateway
- Cloud Key Gen 2 - UniFi Controller host
- Access Points, Switches (to be discovered)
Available Commands
All commands are executed via the UniFi CLI wrapper located at ~/.claude/skills/Unifi/unifi-cli.ts.
Run commands using:
bun ~/.claude/skills/Unifi/unifi-cli.ts <command>
Network Status Commands
-
Get Site Status
bun ~/.claude/skills/Unifi/unifi-cli.ts site-statusShows overall network health, controller version, and site information.
-
List All Devices
bun ~/.claude/skills/Unifi/unifi-cli.ts devicesShows all UniFi devices (USG, APs, Switches) with status, uptime, and firmware.
-
List Connected Clients
bun ~/.claude/skills/Unifi/unifi-cli.ts clientsShows all connected clients with hostname, IP, MAC, connection type, and bandwidth usage.
-
Get Device Health
bun ~/.claude/skills/Unifi/unifi-cli.ts healthShows health metrics for all devices including CPU, memory, uptime.
-
Get Recent Alerts
bun ~/.claude/skills/Unifi/unifi-cli.ts alertsShows recent network alerts and events.
-
Get WAN Status
bun ~/.claude/skills/Unifi/unifi-cli.ts wanShows WAN connection status, public IP, speeds, and uptime.
-
Get Bandwidth Stats
bun ~/.claude/skills/Unifi/unifi-cli.ts bandwidthShows current bandwidth usage by client and overall network.
Configuration
Configuration is stored in ~/.claude/skills/Unifi/config.json:
{
"controller": {
"host": "192.168.1.x",
"port": 8443,
"username": "admin",
"password": "your-password",
"site": "default"
}
}
Security Notes:
- Config file contains credentials - NEVER commit to public repos
- Stored in
~/.claude/skills/Unifi/which should be in .gitignore - Uses local network connection to Cloud Key
- Read-only operations by default (safe queries only)
First-Time Setup
If this is the first time using the skill:
-
Install dependencies:
cd ~/.claude/skills/Unifi && bun install -
Create config file:
cp ~/.claude/skills/Unifi/config.example.json ~/.claude/skills/Unifi/config.json -
Edit config with actual values:
- Set
hostto Cloud Key IP address - Set
usernameandpasswordfor UniFi Controller - Site is usually "default" unless using multiple sites
- Set
-
Test connection:
bun ~/.claude/skills/Unifi/unifi-cli.ts site-status
Usage Instructions for AI
When user asks about network status:
-
Check if skill is configured:
- Verify
~/.claude/skills/Unifi/config.jsonexists - If not, guide user through setup
- Verify
-
Run appropriate command:
- Network status →
site-status - Who's online →
clients - Device health →
healthordevices - Internet status →
wan - Recent issues →
alerts
- Network status →
-
Parse and present results:
- Format output in readable tables
- Highlight important metrics (high bandwidth, offline devices, alerts)
- Provide context and interpretation
Example Queries
User asks: "Who's connected to my network?"
bun ~/.claude/skills/Unifi/unifi-cli.ts clients
User asks: "Is my internet working?"
bun ~/.claude/skills/Unifi/unifi-cli.ts wan
User asks: "What's wrong with my network?"
bun ~/.claude/skills/Unifi/unifi-cli.ts alerts
bun ~/.claude/skills/Unifi/unifi-cli.ts health
User asks: "How's my network doing?"
bun ~/.claude/skills/Unifi/unifi-cli.ts site-status
bun ~/.claude/skills/Unifi/unifi-cli.ts devices
Limitations
- Read-only operations (no configuration changes)
- Requires local network access to Cloud Key
- Depends on UniFi Controller being online and accessible
- Some features require specific UniFi device types
Future Enhancements
Potential additions:
- Port forwarding management
- DHCP lease information
- Deep packet inspection (DPI) stats
- Guest network management
- WiFi configuration queries
- Historical bandwidth trends
- Alert notifications
Troubleshooting
Connection Failed:
- Verify Cloud Key is online and accessible
- Check IP address in config.json
- Ensure username/password are correct
- Verify port 8443 is accessible (HTTPS to Controller)
Authentication Failed:
- Verify username/password in config.json
- Check if account has admin privileges
- Try logging into Controller web UI with same credentials
Command Not Found:
- Run
cd ~/.claude/skills/Unifi && bun install - Verify bun is installed:
bun --version - Check file exists:
ls -la ~/.claude/skills/Unifi/unifi-cli.ts