adguard-home
Manage, troubleshoot, configure, analyze, and review AdGuard Home DNS server. Use when working with AdGuard Home, DNS blocking, ad blocking, network-wide filtering, DNS queries, blocklists, client management, DHCP, or DNS rewrites. Supports REST API and SSH access. Triggers on adguard, DNS blocking, ad blocking, network filtering, DNS server, blocklist, pi-hole alternative.
Best use case
adguard-home is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Manage, troubleshoot, configure, analyze, and review AdGuard Home DNS server. Use when working with AdGuard Home, DNS blocking, ad blocking, network-wide filtering, DNS queries, blocklists, client management, DHCP, or DNS rewrites. Supports REST API and SSH access. Triggers on adguard, DNS blocking, ad blocking, network filtering, DNS server, blocklist, pi-hole alternative.
Teams using adguard-home should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/adguard-home/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How adguard-home Compares
| Feature / Agent | adguard-home | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Manage, troubleshoot, configure, analyze, and review AdGuard Home DNS server. Use when working with AdGuard Home, DNS blocking, ad blocking, network-wide filtering, DNS queries, blocklists, client management, DHCP, or DNS rewrites. Supports REST API and SSH access. Triggers on adguard, DNS blocking, ad blocking, network filtering, DNS server, blocklist, pi-hole alternative.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# AdGuard Home Management Comprehensive management capabilities for AdGuard Home DNS server. ## Prerequisites ### Environment Variables ```bash ADGUARD_URL=https://your-adguard-domain.local ADGUARD_USER=admin ADGUARD_PASS=your-password ADGUARD_SSH_HOST=192.168.x.x ADGUARD_SSH_USER=your-ssh-user ``` ### Python Packages ```bash pip install requests paramiko ``` ## Quick Reference ### API Authentication ```bash curl -u "$ADGUARD_USER:$ADGUARD_PASS" "$ADGUARD_URL/control/status" ``` ### Common Tasks | Task | API Endpoint | Method | |------|--------------|--------| | Get status | `/control/status` | GET | | Get DNS info | `/control/dns_info` | GET | | Query log | `/control/querylog` | GET | | Get stats | `/control/stats` | GET | | List clients | `/control/clients` | GET | | Filter status | `/control/filtering/status` | GET | | Clear cache | `/control/cache_clear` | POST | ## Core Management Tasks ### 1. Status & Health Check ```bash curl -u "$ADGUARD_USER:$ADGUARD_PASS" "$ADGUARD_URL/control/status" ``` ### 2. Query Log Analysis ```python python scripts/adguard_api.py querylog --limit 100 --search "blocked" ``` Filter by response status: `all`, `filtered`, `blocked`, `blocked_safebrowsing`, `blocked_parental`, `whitelisted`, `rewritten`, `processed` ### 3. Filter Management **View current filters:** ```python python scripts/adguard_api.py filters ``` **Add a blocklist:** ```python python scripts/adguard_api.py add-filter --name "My List" --url "https://example.com/blocklist.txt" ``` **Custom filtering rules:** ```bash # Block domain ||ads.example.com^ # Allow domain (whitelist) @@||allowed.example.com^ # Block with regex /ads[0-9]+\.example\.com/ ``` ### 4. Client Management ```python # List all clients python scripts/adguard_api.py clients # Add/configure client python scripts/adguard_api.py add-client --name "Living Room TV" --ids "192.168.1.50" ``` ### 5. DNS Rewrites ```python # List rewrites python scripts/adguard_api.py rewrites # Add rewrite python scripts/adguard_api.py add-rewrite --domain "myserver.local" --answer "192.168.1.100" ``` ### 6. Statistics ```python python scripts/adguard_api.py stats python scripts/adguard_api.py reset-stats ``` ## SSH Server Management ### Service Management ```bash # Check service status ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "systemctl status AdGuardHome" # Restart service ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "sudo systemctl restart AdGuardHome" # View logs ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "sudo journalctl -u AdGuardHome -n 100" ``` ### Configuration File Location: `/opt/AdGuardHome/AdGuardHome.yaml` ```bash # Backup config ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "sudo cp /opt/AdGuardHome/AdGuardHome.yaml /opt/AdGuardHome/AdGuardHome.yaml.bak" # View config ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "sudo cat /opt/AdGuardHome/AdGuardHome.yaml" ``` ### Update AdGuard Home ```bash ssh $ADGUARD_SSH_USER@$ADGUARD_SSH_HOST "cd /opt/AdGuardHome && sudo ./AdGuardHome -s stop && sudo ./AdGuardHome --update && sudo ./AdGuardHome -s start" ``` ## Example Workflows ### Investigate Blocked Request 1. Check query log for the blocked domain 2. Identify which filter blocked it 3. Add whitelist rule if false positive 4. Clear DNS cache 5. Test resolution ### Add New Device with Custom Settings 1. Identify device IP/MAC 2. Create client configuration 3. Set custom upstream DNS if needed 4. Configure blocked services 5. Set parental controls if applicable ### Security Audit 1. Review client list for unknown devices 2. Check query log for suspicious domains 3. Verify safebrowsing is enabled 4. Review TLS configuration 5. Check for software updates ## Troubleshooting ### DNS Resolution Failures 1. Check AdGuard Home service status 2. Verify upstream DNS servers 3. Check network connectivity 4. Review query log for errors ### Clients Not Using AdGuard Home 1. Verify client DHCP settings 2. Check if client has hardcoded DNS 3. Review router DNS configuration 4. Check firewall rules ### High Latency 1. Check upstream DNS performance 2. Review blocklist count 3. Enable DNS caching 4. Consider local upstream resolver ## Best Practices 1. **Use encrypted DNS** - DoH/DoT for upstream 2. **Regular blocklist updates** - Keep filters current 3. **Monitor query patterns** - Watch for anomalies 4. **Backup configuration** - Before major changes 5. **Enable safebrowsing** - Additional protection 6. **Configure rate limiting** - Prevent abuse 7. **Use client groups** - Different policies per device 8. **Regular log review** - Security monitoring ## When to Use This Skill - Managing AdGuard Home installation - Troubleshooting DNS issues - Configuring blocklists and filters - Setting up client-specific rules - Analyzing DNS queries - Managing DNS rewrites - Performing security audits
Related Skills
add-home-widget-selector
为Flutter插件添加可配置的选择器小组件(HomeWidget),支持用户点击配置、数据选择和动态数据渲染。核心特性:(1) 配置dataSelector保存必要数据,(2) 通过controller传递id获取最新数据,(3) 支持导航到详情页
homebrew-release
Create a new version release for a Homebrew formula in the homebrew-tools tap. Handles git tagging, GitHub releases, SHA256 computation, and formula updates. Use when the user wants to publish a new version of a tool in their Homebrew tap.
esphome-config-helper
This skill should be used when the user asks to "create an esphome config", "set up an esp32 device", "configure esphome yaml", "add a sensor to esphome", "fix esphome compile error", or mentions "gpio pin assignment", "wifi setup", "ota update", or error messages like "Unknown platform", "GPIO already in use", "Could not compile", or "WiFi connection failed". Provides rapid ESPHome configuration generation, troubleshooting, and validation.
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
large-data-with-dask
Specific optimization strategies for Python scripts working with larger-than-memory datasets via Dask.
langsmith-fetch
Debug LangChain and LangGraph agents by fetching execution traces from LangSmith Studio. Use when debugging agent behavior, investigating errors, analyzing tool calls, checking memory operations, or examining agent performance. Automatically fetches recent traces and analyzes execution patterns. Requires langsmith-fetch CLI installed.
langchain-tool-calling
How chat models call tools - includes bind_tools, tool choice strategies, parallel tool calling, and tool message handling
langchain-notes
LangChain 框架学习笔记 - 快速查找概念、代码示例和最佳实践。包含 Core components、Middleware、Advanced usage、Multi-agent patterns、RAG retrieval、Long-term memory 等主题。当用户询问 LangChain、Agent、RAG、向量存储、工具使用、记忆系统时使用此 Skill。
langchain-js
Builds LLM-powered applications with LangChain.js for chat, agents, and RAG. Use when creating AI applications with chains, memory, tools, and retrieval-augmented generation in JavaScript.
langchain-agents
Expert guidance for building LangChain agents with proper tool binding, memory, and configuration. Use when creating agents, configuring models, or setting up tool integrations in LangConfig.
lang-python
Python 3.13+ development specialist covering FastAPI, Django, async patterns, data science, testing with pytest, and modern Python features. Use when developing Python APIs, web applications, data pipelines, or writing tests.
kramme:agents-md
This skill should be used when the user asks to "update AGENTS.md", "add to AGENTS.md", "maintain agent docs", or needs to add guidelines to agent instructions. Guides discovery of local skills and enforces structured, keyword-based documentation style.