From opnsense-mgmt
Use when the user wants to debug their local network, inspect firewall rules, or perform maintenance on their OPNsense router via SSH or the OPNsense API. Reads connection details from `$CLAUDE_USER_DATA/opnsense-mgmt/config.json` (populated by the `onboard` skill in this plugin). Triggers on phrases like "opnsense maintenance", "check opnsense", "debug the network", "firewall rules".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin opnsense-mgmtThis skill uses the workspace's default tool permissions.
Inspect and maintain an OPNsense router/firewall. All host- and credential-specific values come from the plugin's config — never hard-code them.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Inspect and maintain an OPNsense router/firewall. All host- and credential-specific values come from the plugin's config — never hard-code them.
Resolve the plugin data directory (${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/opnsense-mgmt/) and load config.json. If it doesn't exist or is incomplete, tell the user to run the onboard skill first and stop.
Available fields after load:
host, ssh_user, ssh_port, ssh_key_pathweb_urlapi.enabled, api.key_ref, api.secret_refssh ${SSH_KEY_PATH:+-i "$SSH_KEY_PATH"} -p "$SSH_PORT" "$SSH_USER@$HOST"
api.enabled is true): resolve the key/secret from their *_ref pointer at runtime — 1Password item, env var, or file path. Do not log the secret./var/log/)Useful one-liners (run via SSH):
# Interface status
ifconfig
# Active DHCP leases
cat /var/dhcpd/var/db/dhcpd.leases
# Firewall log tail
clog -f /var/log/filter.log | head -50
# Configuration dump
cat /conf/config.xml | head -200
api.enabled)Base URL: <web_url>/api/<module>/<controller>/<command>. Authenticate with --user "$API_KEY:$API_SECRET".
curl -k --user "$API_KEY:$API_SECRET" \
"$WEB_URL/api/firewall/filter/get"
Common endpoints:
| Module | Path | Purpose |
|---|---|---|
core/firmware | /status | Firmware/update status |
firewall/filter | /get | Pull current rule set |
firewall/alias | /searchItem | List aliases |
interfaces/overview | /interfacesInfo | Interface state |
diagnostics/interface | /getArp | ARP table |
ssh_user isn't root, escalate via sudo rather than reconnecting as root.