modules/programs/agents/shared/skills/adguard/SKILL.md
Inspect and manage my self-hosted AdGuard Home DNS sinkhole. Use when the user asks about AdGuard, DNS blocking, query logs, blocklists/filters, top queried or blocked domains, DNS clients, or wants to toggle protection.
npx skillsauth add MichaelVessia/nixos-config adguardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage my self-hosted AdGuard Home (DNS sinkhole / ad-blocker) instance. Inspect status, query logs, stats, configured clients, and filter lists. Toggle DNS protection (mutation — confirm first).
Credentials come from sops-nix (see modules/programs/shell.nix):
ADGUARD_URL — base URL (no trailing slash), e.g. http://192.168.1.109ADGUARD_USERNAME — HTTP basic auth userADGUARD_PASSWORD — HTTP basic auth passwordThe adguard CLI reports a JSON error envelope when they are missing. All API
calls hit the /control/ base path and pass HTTP basic auth.
Use the installed adguard CLI for common operations. It always emits a single
JSON envelope with ok, command, result or error, and next_actions.
scripts/adguard.sh remains as a compatibility shim for older workflows.
adguard status # version, running, protection, dns addrs
adguard version # just version string
adguard stats # 24h query/block counts + top domains
adguard stats-info # stats retention interval (days)
adguard query-log --limit 50 # recent querylog entries
adguard query-log-search example.com --limit 200 # search recent querylog
adguard clients # configured and auto-detected clients
adguard clients-active <ip> # lookup one client by IP
adguard filters # blocklists, allowlists, custom rule count
adguard rules # custom user_rules only
adguard dns-config # full DNS server config
adguard dhcp-status # DHCP server status (if enabled)
adguard protection-toggle on --confirm-toggle # MUTATION, confirm first
For anything not covered, call the API directly with $ADGUARD_URL plus
-u "$ADGUARD_USERNAME:$ADGUARD_PASSWORD" — see references/api-endpoints.md
and references/quick-reference.md.
adguard query-log-search example.com — see when/who hit it.adguard filters — see which list flagged it (the rules
field in querylog points to filter ID + line).adguard rules — check custom user rules for overrides.adguard stats — top clients by query count.adguard clients-active <ip> — resolve an IP to its
configured client profile and per-client overrides.Always confirm with the user before:
adguard protection-toggle on|off --confirm-toggle (disables DNS filtering globally — every device
on the LAN loses ad/tracker blocking until re-enabled)/control/* (filter add/remove, DNS config
changes, DHCP changes, client edits)references/api-endpoints.md — endpoints used by the CLI, with response
shapes verified against the live instance (v0.107.67)references/quick-reference.md — copy-paste curl recipesreferences/troubleshooting.md — 401/403, connection, DNS-side issues/control/ (not /api/v1/).AdGuardHome.yaml; rotating it means editing that YAML, not a UI setting.http://192.168.1.109 (LXC 106), v0.107.67.development
Restate the last message in plain human language, with no jargon.
testing
Fan out a batch of work items into one PR each via isolated worktree agents, review every PR before it opens, then babysit all PRs through green CI and review feedback. Use when the user wants to fan out PRs, dispatch parallel PR agents over a list of items, or run a batch of independent changes as separate PRs.
development
Dispatch user-visible coding or research agents through Herdr with Codex-Desktop-like thread ergonomics. Use when the user asks to use Herdr to spawn, dispatch, fan out, inspect, follow up with, or monitor agent workspaces/threads.
development
Generate self-contained HTML visualizations with Plannotator theming. Use for implementation plans, PR explainers, architecture diagrams, data tables, slide decks, and any visual explanation of technical concepts. Plans and PR explainers follow Plannotator's prescriptive approach; all other visual content delegates to nicobailon/visual-explainer.