Adguard
/install adguard
AdGuard Home Controller
Manage AdGuard Home DNS filtering from the command line via the REST API.
Requirements
- AdGuard Home running with web interface
- Admin username and password
curlinstalled (usually default on macOS/Linux)
Quick Start
# Set password once
export ADGUARD_PASSWORD=your_admin_password
# Use commands
./adguard.sh status
./adguard.sh check example.com
./adguard.sh allow broken-site.com
./adguard.sh block malware.ru
Configuration
Set environment variables for your AdGuard instance:
export ADGUARD_URL="http://192.168.1.100:3000" # Your AdGuard IP and port
export ADGUARD_USERNAME="admin" # Usually 'admin' (default)
export ADGUARD_PASSWORD="your_admin_password" # REQUIRED
Add to ~/.bashrc or ~/.zshrc for persistence.
Config File Alternative
Create ~/.adguard/config.json (optional):
{
"url": "http://192.168.1.100:3000",
"username": "admin"
}
Then set ADGUARD_PASSWORD separately for security.
Commands
check \x3Cdomain>
Check if a domain is currently blocked or allowed.
./adguard.sh check doubleclick.net
# ✗ doubleclick.net IS BLOCKED
# Blocked by: Adblock Plus filter
./adguard.sh check example.com
# ✓ example.com is NOT blocked (allowed)
allow \x3Cdomain> | whitelist \x3Cdomain>
Add a domain to the allowlist (whitelist). Creates an exception rule that overrides blocklists.
./adguard.sh allow broken-site.com
# ✓ Added rule: @@||broken-site.com^
# Domain: broken-site.com
# Action: allow
block \x3Cdomain> | blacklist \x3Cdomain>
Add a domain to the blocklist. Creates a custom blocking rule.
./adguard.sh block spyware-domain.ru
# ✓ Added rule: ||spyware-domain.ru^
# Domain: spyware-domain.ru
# Action: block
status | stats
Display DNS filtering statistics and protection state.
./adguard.sh status
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# AdGuard Home Status
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Protection: ✓ ENABLED
#
# DNS Queries: 1,234
# Blocked by rules: 156
# Blocked by safe browsing: 23
# Safe search replacements: 5
# Block rate: 14%
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
toggle | protection
Enable or disable DNS protection. Useful for temporarily disabling filtering.
./adguard.sh toggle
# Disabling protection...
# ✓ Protection is now false
cache-clear
Clear the DNS cache to apply rule changes immediately.
./adguard.sh cache-clear
# Clearing DNS cache...
# ✓ Cache cleared
Finding Your AdGuard Home Device
If you don't know your AdGuard URL:
- Router admin panel — Look for a device named "AdGuard Home" or check for port 3000
- Local network scan — Use
nmapor check "Connected Devices" - If running on same machine — Default is
http://localhost:3000 - mDNS/Bonjour — Try
http://adguard-home.local:3000(depends on network)
Filtering Rules Syntax
AdGuard uses a DNS filtering rule syntax:
| Rule | Effect |
|---|---|
||example.com^ |
Block example.com and subdomains |
@@||example.com^ |
Allow example.com (exception/whitelist) |
example.com |
Block exact domain only |
||ad.example.com^ |
Block only ad.example.com |
See API Reference for complete syntax.
Common Scenarios
Allow a site that's blocked by accident
adguard.sh allow my-bank.com
Block a known malware domain
adguard.sh block malicious-tracker.xyz
Check if a domain is being filtered
adguard.sh check ads.google.com
View today's statistics
adguard.sh status
Temporarily disable filtering (e.g., for troubleshooting)
adguard.sh toggle
Troubleshooting
Error: Failed to authenticate
→ Check ADGUARD_PASSWORD is correct and set
→ Verify ADGUARD_URL points to the right IP and port
Error: API call failed (HTTP 401) → Authentication failed, check credentials
Rules don't take effect
→ Run adguard.sh cache-clear to flush DNS cache
→ Wait 5+ minutes for clients to refresh their cache
→ Restart your device's network connection
Can't connect to AdGuard
→ Verify device is on the same network
→ Check firewall isn't blocking port 3000
→ Ping the device: ping \x3Cip>
Advanced: Batch Operations
Block multiple domains:
for domain in tracker1.com tracker2.com tracker3.com; do
adguard.sh block "$domain"
done
Check multiple domains:
for domain in example.com test.org my-site.net; do
echo "Checking $domain..."
adguard.sh check "$domain"
done
API Reference
See references/api.md for complete AdGuard Home API documentation.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install adguard - 安装完成后,直接呼叫该 Skill 的名称或使用
/adguard触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Adguard 是什么?
Control AdGuard Home DNS filtering via HTTP API. Use when managing blocklists/allowlists, checking domain filtering status, toggling protection, or clearing DNS cache. Supports blocking/allowing domains, viewing statistics, and protecting/disabling DNS filtering. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2705 次。
如何安装 Adguard?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install adguard」即可一键安装,无需额外配置。
Adguard 是免费的吗?
是的,Adguard 完全免费(开源免费),可自由下载、安装和使用。
Adguard 支持哪些平台?
Adguard 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Adguard?
由 Alex Buchan(@rowbotik)开发并维护,当前版本 v0.1.0。