{
  "schemaVersion": "1.0",
  "item": {
    "slug": "adguard",
    "name": "Adguard",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/rowbotik/adguard",
    "canonicalUrl": "https://clawhub.ai/rowbotik/adguard",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/adguard",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=adguard",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/api.md",
      "scripts/adguard.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/adguard"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/adguard",
    "agentPageUrl": "https://openagent3.xyz/skills/adguard/agent",
    "manifestUrl": "https://openagent3.xyz/skills/adguard/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/adguard/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "AdGuard Home Controller",
        "body": "Manage AdGuard Home DNS filtering from the command line via the REST API."
      },
      {
        "title": "Requirements",
        "body": "AdGuard Home running with web interface\nAdmin username and password\ncurl installed (usually default on macOS/Linux)"
      },
      {
        "title": "Quick Start",
        "body": "# Set password once\nexport ADGUARD_PASSWORD=your_admin_password\n\n# Use commands\n./adguard.sh status\n./adguard.sh check example.com\n./adguard.sh allow broken-site.com\n./adguard.sh block malware.ru"
      },
      {
        "title": "Configuration",
        "body": "Set environment variables for your AdGuard instance:\n\nexport ADGUARD_URL=\"http://192.168.1.100:3000\"      # Your AdGuard IP and port\nexport ADGUARD_USERNAME=\"admin\"                     # Usually 'admin' (default)\nexport ADGUARD_PASSWORD=\"your_admin_password\"       # REQUIRED\n\nAdd to ~/.bashrc or ~/.zshrc for persistence."
      },
      {
        "title": "Config File Alternative",
        "body": "Create ~/.adguard/config.json (optional):\n\n{\n  \"url\": \"http://192.168.1.100:3000\",\n  \"username\": \"admin\"\n}\n\nThen set ADGUARD_PASSWORD separately for security."
      },
      {
        "title": "check <domain>",
        "body": "Check if a domain is currently blocked or allowed.\n\n./adguard.sh check doubleclick.net\n# ✗ doubleclick.net IS BLOCKED\n#   Blocked by: Adblock Plus filter\n\n./adguard.sh check example.com\n# ✓ example.com is NOT blocked (allowed)"
      },
      {
        "title": "allow <domain> | whitelist <domain>",
        "body": "Add a domain to the allowlist (whitelist). Creates an exception rule that overrides blocklists.\n\n./adguard.sh allow broken-site.com\n# ✓ Added rule: @@||broken-site.com^\n#   Domain: broken-site.com\n#   Action: allow"
      },
      {
        "title": "block <domain> | blacklist <domain>",
        "body": "Add a domain to the blocklist. Creates a custom blocking rule.\n\n./adguard.sh block spyware-domain.ru\n# ✓ Added rule: ||spyware-domain.ru^\n#   Domain: spyware-domain.ru\n#   Action: block"
      },
      {
        "title": "status | stats",
        "body": "Display DNS filtering statistics and protection state.\n\n./adguard.sh status\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n# AdGuard Home Status\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n# Protection: ✓ ENABLED\n# \n# DNS Queries: 1,234\n# Blocked by rules: 156\n# Blocked by safe browsing: 23\n# Safe search replacements: 5\n# Block rate: 14%\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
      },
      {
        "title": "toggle | protection",
        "body": "Enable or disable DNS protection. Useful for temporarily disabling filtering.\n\n./adguard.sh toggle\n# Disabling protection...\n# ✓ Protection is now false"
      },
      {
        "title": "cache-clear",
        "body": "Clear the DNS cache to apply rule changes immediately.\n\n./adguard.sh cache-clear\n# Clearing DNS cache...\n# ✓ Cache cleared"
      },
      {
        "title": "Finding Your AdGuard Home Device",
        "body": "If you don't know your AdGuard URL:\n\nRouter admin panel — Look for a device named \"AdGuard Home\" or check for port 3000\nLocal network scan — Use nmap or check \"Connected Devices\"\nIf running on same machine — Default is http://localhost:3000\nmDNS/Bonjour — Try http://adguard-home.local:3000 (depends on network)"
      },
      {
        "title": "Filtering Rules Syntax",
        "body": "AdGuard uses a DNS filtering rule syntax:\n\nRuleEffect||example.com^Block example.com and subdomains@@||example.com^Allow example.com (exception/whitelist)example.comBlock exact domain only||ad.example.com^Block only ad.example.com\n\nSee API Reference for complete syntax."
      },
      {
        "title": "Allow a site that's blocked by accident",
        "body": "adguard.sh allow my-bank.com"
      },
      {
        "title": "Block a known malware domain",
        "body": "adguard.sh block malicious-tracker.xyz"
      },
      {
        "title": "Check if a domain is being filtered",
        "body": "adguard.sh check ads.google.com"
      },
      {
        "title": "View today's statistics",
        "body": "adguard.sh status"
      },
      {
        "title": "Temporarily disable filtering (e.g., for troubleshooting)",
        "body": "adguard.sh toggle"
      },
      {
        "title": "Troubleshooting",
        "body": "Error: Failed to authenticate\n→ Check ADGUARD_PASSWORD is correct and set\n→ Verify ADGUARD_URL points to the right IP and port\n\nError: API call failed (HTTP 401)\n→ Authentication failed, check credentials\n\nRules don't take effect\n→ Run adguard.sh cache-clear to flush DNS cache\n→ Wait 5+ minutes for clients to refresh their cache\n→ Restart your device's network connection\n\nCan't connect to AdGuard\n→ Verify device is on the same network\n→ Check firewall isn't blocking port 3000\n→ Ping the device: ping <ip>"
      },
      {
        "title": "Advanced: Batch Operations",
        "body": "Block multiple domains:\n\nfor domain in tracker1.com tracker2.com tracker3.com; do\n    adguard.sh block \"$domain\"\ndone\n\nCheck multiple domains:\n\nfor domain in example.com test.org my-site.net; do\n    echo \"Checking $domain...\"\n    adguard.sh check \"$domain\"\ndone"
      },
      {
        "title": "API Reference",
        "body": "See references/api.md for complete AdGuard Home API documentation."
      }
    ],
    "body": "AdGuard Home Controller\n\nManage AdGuard Home DNS filtering from the command line via the REST API.\n\nRequirements\nAdGuard Home running with web interface\nAdmin username and password\ncurl installed (usually default on macOS/Linux)\nQuick Start\n# Set password once\nexport ADGUARD_PASSWORD=your_admin_password\n\n# Use commands\n./adguard.sh status\n./adguard.sh check example.com\n./adguard.sh allow broken-site.com\n./adguard.sh block malware.ru\n\nConfiguration\n\nSet environment variables for your AdGuard instance:\n\nexport ADGUARD_URL=\"http://192.168.1.100:3000\"      # Your AdGuard IP and port\nexport ADGUARD_USERNAME=\"admin\"                     # Usually 'admin' (default)\nexport ADGUARD_PASSWORD=\"your_admin_password\"       # REQUIRED\n\n\nAdd to ~/.bashrc or ~/.zshrc for persistence.\n\nConfig File Alternative\n\nCreate ~/.adguard/config.json (optional):\n\n{\n  \"url\": \"http://192.168.1.100:3000\",\n  \"username\": \"admin\"\n}\n\n\nThen set ADGUARD_PASSWORD separately for security.\n\nCommands\ncheck <domain>\n\nCheck if a domain is currently blocked or allowed.\n\n./adguard.sh check doubleclick.net\n# ✗ doubleclick.net IS BLOCKED\n#   Blocked by: Adblock Plus filter\n\n./adguard.sh check example.com\n# ✓ example.com is NOT blocked (allowed)\n\nallow <domain> | whitelist <domain>\n\nAdd a domain to the allowlist (whitelist). Creates an exception rule that overrides blocklists.\n\n./adguard.sh allow broken-site.com\n# ✓ Added rule: @@||broken-site.com^\n#   Domain: broken-site.com\n#   Action: allow\n\nblock <domain> | blacklist <domain>\n\nAdd a domain to the blocklist. Creates a custom blocking rule.\n\n./adguard.sh block spyware-domain.ru\n# ✓ Added rule: ||spyware-domain.ru^\n#   Domain: spyware-domain.ru\n#   Action: block\n\nstatus | stats\n\nDisplay DNS filtering statistics and protection state.\n\n./adguard.sh status\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n# AdGuard Home Status\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n# Protection: ✓ ENABLED\n# \n# DNS Queries: 1,234\n# Blocked by rules: 156\n# Blocked by safe browsing: 23\n# Safe search replacements: 5\n# Block rate: 14%\n# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\ntoggle | protection\n\nEnable or disable DNS protection. Useful for temporarily disabling filtering.\n\n./adguard.sh toggle\n# Disabling protection...\n# ✓ Protection is now false\n\ncache-clear\n\nClear the DNS cache to apply rule changes immediately.\n\n./adguard.sh cache-clear\n# Clearing DNS cache...\n# ✓ Cache cleared\n\nFinding Your AdGuard Home Device\n\nIf you don't know your AdGuard URL:\n\nRouter admin panel — Look for a device named \"AdGuard Home\" or check for port 3000\nLocal network scan — Use nmap or check \"Connected Devices\"\nIf running on same machine — Default is http://localhost:3000\nmDNS/Bonjour — Try http://adguard-home.local:3000 (depends on network)\nFiltering Rules Syntax\n\nAdGuard uses a DNS filtering rule syntax:\n\nRule\tEffect\n||example.com^\tBlock example.com and subdomains\n@@||example.com^\tAllow example.com (exception/whitelist)\nexample.com\tBlock exact domain only\n||ad.example.com^\tBlock only ad.example.com\n\nSee API Reference for complete syntax.\n\nCommon Scenarios\nAllow a site that's blocked by accident\nadguard.sh allow my-bank.com\n\nBlock a known malware domain\nadguard.sh block malicious-tracker.xyz\n\nCheck if a domain is being filtered\nadguard.sh check ads.google.com\n\nView today's statistics\nadguard.sh status\n\nTemporarily disable filtering (e.g., for troubleshooting)\nadguard.sh toggle\n\nTroubleshooting\n\nError: Failed to authenticate → Check ADGUARD_PASSWORD is correct and set → Verify ADGUARD_URL points to the right IP and port\n\nError: API call failed (HTTP 401) → Authentication failed, check credentials\n\nRules 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\n\nCan't connect to AdGuard → Verify device is on the same network → Check firewall isn't blocking port 3000 → Ping the device: ping <ip>\n\nAdvanced: Batch Operations\n\nBlock multiple domains:\n\nfor domain in tracker1.com tracker2.com tracker3.com; do\n    adguard.sh block \"$domain\"\ndone\n\n\nCheck multiple domains:\n\nfor domain in example.com test.org my-site.net; do\n    echo \"Checking $domain...\"\n    adguard.sh check \"$domain\"\ndone\n\nAPI Reference\n\nSee references/api.md for complete AdGuard Home API documentation."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/rowbotik/adguard",
    "publisherUrl": "https://clawhub.ai/rowbotik/adguard",
    "owner": "rowbotik",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/adguard",
    "downloadUrl": "https://openagent3.xyz/downloads/adguard",
    "agentUrl": "https://openagent3.xyz/skills/adguard/agent",
    "manifestUrl": "https://openagent3.xyz/skills/adguard/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/adguard/agent.md"
  }
}