{
  "schemaVersion": "1.0",
  "item": {
    "slug": "adguard-test",
    "name": "Adguard Test",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/foxleoly/adguard-test",
    "canonicalUrl": "https://clawhub.ai/foxleoly/adguard-test",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/adguard-test",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=adguard-test",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SECURITY_AUDIT.md",
      "SKILL.md",
      "TEST_REPORT.md",
      "clawhub.json",
      "index.js"
    ],
    "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-test"
    },
    "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-test",
    "agentPageUrl": "https://openagent3.xyz/skills/adguard-test/agent",
    "manifestUrl": "https://openagent3.xyz/skills/adguard-test/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/adguard-test/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 Skill",
        "body": "🛡️ Query AdGuard Home instances for DNS statistics, blocked domains, and client activity\n🛡️ 查询 AdGuard Home 实例的 DNS 统计、拦截域名和客户端活动"
      },
      {
        "title": "Features | 功能特性",
        "body": "✅ Multi-instance support | 支持多实例配置\n✅ Real-time DNS query statistics | 实时 DNS 查询统计\n✅ Blocked domains leaderboard | 拦截域名排行\n✅ Active client analysis | 活跃客户端分析\n✅ Health status check | 健康状态检查\n✅ Service status monitoring | 服务状态监控\n✅ DNS configuration details | DNS 配置详情\n✅ Filter rules inspection | 过滤规则和列表\n✅ Recent query log | 最近查询日志\n✅ TLS/encryption status | TLS/加密状态"
      },
      {
        "title": "Method 1: ClawHub CLI (Recommended) | 方法 1: ClawHub CLI（推荐）",
        "body": "# Install from ClawHub registry | 从 ClawHub 安装\nclawhub install adguard-home\n\n# Verify installation | 验证安装\nclawhub list | grep adguard-home"
      },
      {
        "title": "Method 2: Manual Install | 方法 2: 手动安装",
        "body": "# Clone the repository | 克隆仓库\ngit clone https://github.com/foxleoly/adguard-home-skill.git\ncd adguard-home-skill\n\n# Copy to your skills directory | 复制到技能目录\ncp -r . ~/.openclaw/workspace/skills/adguard-home/"
      },
      {
        "title": "Post-Installation Setup | 安装后配置",
        "body": "Create configuration file | 创建配置文件:\n# Edit adguard-instances.json | 编辑配置文件\nvim ~/.openclaw/workspace/adguard-instances.json\n\n\n\nAdd your instances | 添加实例:\n{\n  \"instances\": {\n    \"dns1\": {\n      \"url\": \"http://192.168.1.1:80\",\n      \"username\": \"admin\",\n      \"password\": \"your-password\"\n    }\n  }\n}\n\n\n\nSecure the config file | 保护配置文件:\nchmod 600 ~/.openclaw/workspace/adguard-instances.json\n\n\n\nTest the skill | 测试技能:\n/adguard stats dns1"
      },
      {
        "title": "Basic Commands | 基础命令",
        "body": "# Statistics & Monitoring | 统计与监控\n/adguard stats [instance]           # DNS statistics | DNS 统计\n/adguard top-clients [instance]     # Top 10 active clients | 活跃客户端 Top 10\n/adguard top-blocked [instance]     # Top 10 blocked domains | 被拦截域名 Top 10\n/adguard health [instance]          # Health check | 健康检查\n/adguard status [instance]          # Service status | 服务状态\n\n# Configuration & Rules | 配置与规则\n/adguard dns-info [instance]        # DNS configuration | DNS 配置详情\n/adguard filter-rules [instance]    # Filter rules and lists | 过滤规则和列表\n/adguard clients [instance]         # Configured clients | 已配置的客户端\n/adguard tls-status [instance]      # TLS/encryption status | TLS/加密状态\n\n# Query Log | 查询日志\n/adguard querylog [instance] [n]    # Recent n queries (default: 10) | 最近 n 条查询"
      },
      {
        "title": "Examples | 命令示例",
        "body": "# Query dns1 instance statistics | 查询 dns1 实例的统计\n/adguard stats dns1\n\n# Check service status | 检查服务状态\n/adguard status dns1\n\n# View DNS configuration | 查看 DNS 配置\n/adguard dns-info dns1\n\n# View filter rules | 查看过滤规则\n/adguard filter-rules dns1\n\n# View last 20 DNS queries | 查看最近 20 条 DNS 查询\n/adguard querylog dns1 20\n\n# Check TLS status | 检查 TLS 状态\n/adguard tls-status dns1\n\n# If no instance specified, uses the first configured instance | 不指定实例则使用第一个\n/adguard stats"
      },
      {
        "title": "Output Examples | 输出示例",
        "body": "stats command | stats 命令：\n\n📊 AdGuard Home Statistics (dns1)\nTotal DNS Queries: 141,647\nBlocked Requests: 32,540 (23.0%)\nAvg Response Time: 0.005ms\n\nstatus command | status 命令：\n\n🔧 AdGuard Home Status (dns1)\nVersion: v0.107.72\nRunning: ✅ Yes\nProtection: ✅ Enabled\nDNS Port: 53\nHTTP Port: 1080\nLanguage: zh-cn\nDHCP Available: ✅ Yes\n\ndns-info command | dns-info 命令：\n\n🌐 DNS Configuration (dns1)\nProtection: ✅ Enabled\nRate Limit: 20 req/s\nUpstream Mode: parallel\nCache: ✅ 4MB\nDNSSEC: ❌ Disabled\nIPv6: ✅ Enabled\n\nUpstream DNS Servers:\n  1. https://dns.alidns.com/dns-query\n  2. 192.168.1.1:53\n  3. 8.8.8.8:53\n\nfilter-rules command | filter-rules 命令：\n\n🛡️ Filter Rules (dns1)\nFiltering: ✅ Enabled\nUpdate Interval: 12 hours\nUser Rules: 6 custom rules\n\nFilter Lists:\n  1. ✅ AdAway Default Blocklist (6540 rules)\n  2. ✅ gh_100M_block (1110461 rules)\n  3. ✅ 三角洲行动黑名单 (78126 rules)\n\nquerylog command | querylog 命令：\n\n📜 Recent DNS Queries (dns1) - Last 5 entries\n\n1. [12:26:44 AM] 🚫 BLOCKED api.telegram.org (192.168.145.188)\n2. [12:26:43 AM] 🚫 BLOCKED self.events.data.microsoft.com (192.168.145.123)\n   Rule: ||events.data.microsoft.com^\n3. [12:26:42 AM] ✅ OK open.feishu.cn (192.168.145.188)"
      },
      {
        "title": "🔒 Security Best Practices | 安全最佳实践",
        "body": "⚠️ Important: Do not store plaintext credentials in configuration files. Use one of these secure methods:\n⚠️ 重要： 不要在配置文件中存储明文凭证。请使用以下安全方式之一：\n\nOption 1: Environment Variables (Recommended) | 方案一：环境变量（推荐）\n\nSet environment variables before running commands:\n运行命令前设置环境变量：\n\nexport ADGUARD_URL=\"http://192.168.145.249:1080\"\nexport ADGUARD_USERNAME=\"admin\"\nexport ADGUARD_PASSWORD=\"your-secure-password\"\n\nOption 2: 1Password CLI | 方案二：1Password CLI\n\nUse op read to inject secrets at runtime:\n使用 op read 在运行时注入密钥：\n\nexport ADGUARD_PASSWORD=$(op read \"op://vault/AdGuard/credential\")\n\nOption 3: Workspace Config (Local Development Only) | 方案三：工作区配置（仅本地开发）\n\nFor local development, create adguard-instances.json in your current workspace root only:\n本地开发时，仅在当前工作区根目录创建 adguard-instances.json：\n\n{\n  \"instances\": {\n    \"dns1\": {\n      \"url\": \"http://192.168.145.249:1080\",\n      \"username\": \"admin\",\n      \"password\": \"your-secure-password\"\n    }\n  }\n}\n\n⚠️ Never commit this file to version control. Add it to .gitignore.\n⚠️ 切勿将此文件提交到版本控制。将其添加到 .gitignore。"
      },
      {
        "title": "Configuration Parameters | 配置参数",
        "body": "ParameterDescriptionExampleurlAdGuard Home URL (with port)http://192.168.145.249:1080usernameAdmin usernameadminpasswordAdmin password (use env var or secrets manager)your-secure-password\n\n参数说明示例urlAdGuard Home 访问地址（含端口）http://192.168.145.249:1080username管理员用户名adminpassword管理员密码（建议使用环境变量或密钥管理）your-secure-password"
      },
      {
        "title": "Technical Details | 技术实现",
        "body": "Authentication | 认证方式: Cookie-based (POST /control/login)\nData API | 数据接口: GET /control/* endpoints\nRuntime | 运行环境: Node.js (ES Module)\nEntrypoint | 入口文件: index.js"
      },
      {
        "title": "API Endpoints Used | 使用的 API 端点",
        "body": "/control/stats - Statistics data | 统计数据\n/control/status - Service status | 服务状态\n/control/dns_info - DNS configuration | DNS 配置\n/control/filtering/status - Filter rules | 过滤规则\n/control/querylog - Query log | 查询日志\n/control/clients - Client management | 客户端管理\n/control/tls/status - TLS status | TLS 状态"
      },
      {
        "title": "FAQ | 常见问题",
        "body": "Q: Error \"No AdGuard instances configured\"?\nQ: 提示 \"No AdGuard instances configured\"？\n\nA: Ensure environment variables are set (ADGUARD_URL, ADGUARD_USERNAME, ADGUARD_PASSWORD) or create adguard-instances.json in your current workspace root.\nA: 请确保已设置环境变量（ADGUARD_URL、ADGUARD_USERNAME、ADGUARD_PASSWORD），或在当前工作区根目录创建 adguard-instances.json。\n\nQ: Authentication error when querying?\nQ: 查询失败，返回认证错误？\n\nA: Verify username/password in config file. Ensure AdGuard Home service is running.\nA: 检查配置文件中的用户名密码是否正确，确认 AdGuard Home 服务正常运行。\n\nQ: How to add more instances?\nQ: 如何添加更多实例？\n\nA: Add new key-value pairs to the instances object in adguard-instances.json.\nA: 在 adguard-instances.json 的 instances 对象中添加新的键值对即可。\n\nQ: querylog shows no data?\nQ: querylog 没有数据？\n\nA: Ensure query log is enabled in AdGuard Home settings (Settings → DNS Settings → Query log).\nA: 确保 AdGuard Home 设置中已启用查询日志（设置 → DNS 设置 → 查询日志）。"
      },
      {
        "title": "v1.2.1 (2026-02-25) - Credential Security 🔐",
        "body": "Security Improvements | 安全改进：\n\n✅ Removed plaintext credential storage - No longer instructs creating config files with admin credentials\n✅ Environment variable support - Secure credential injection via ADGUARD_URL, ADGUARD_USERNAME, ADGUARD_PASSWORD\n✅ 1Password integration - Supports secrets management via op read\n✅ Removed multi-path search - No longer searches ~/.openclaw-*/workspace/ paths\n✅ Workspace-only config - Local config file only checked in skill directory (dev use)\n✅ Updated documentation - Security best practices prominently featured"
      },
      {
        "title": "v1.2.0 (2026-02-24) - Security Hardening 🔒",
        "body": "Security Improvements | 安全改进：\n\n✅ Removed command injection vulnerability - Replaced execSync + curl with native HTTPS client\n✅ Input validation - Sanitized instance names, commands, and parameters\n✅ Command whitelist - Only allowed commands can be executed\n✅ URL validation - Verified URL format before making requests\n✅ Parameter bounds - Limited querylog limit to 1-100 entries\n✅ No shell escaping issues - Pure JavaScript HTTP requests\n\nTechnical Changes | 技术变更：\n\nRemoved dependency on child_process and external curl commands\nImplemented native http/https module for all API calls\nAdded cookie-based session management\nImproved error handling and validation"
      },
      {
        "title": "v1.1.0 (2026-02-24) - Enhanced",
        "body": "New Commands | 新增命令：\n\nstatus - Service status (version, protection, ports) | 服务状态（版本、保护、端口）\ndns-info - DNS configuration details | DNS 配置详情\nfilter-rules - Filter rules and lists | 过滤规则和列表\nquerylog [n] - Recent DNS queries | 最近 DNS 查询\nclients - Configured clients | 已配置的客户端\ntls-status - TLS/encryption status | TLS/加密状态\n\nImprovements | 改进：\n\nBilingual documentation (Chinese/English) | 中英文双语文档\nBetter error handling | 更好的错误处理\nEnhanced output formatting | 增强的输出格式"
      },
      {
        "title": "v1.0.0 (2026-02-24) - Initial",
        "body": "Features | 功能：\n\nstats/top-clients/top-blocked/health commands | 支持 stats/top-clients/top-blocked/health 命令\nMulti-instance configuration support | 多实例配置支持\nES Module implementation | ES Module 实现"
      },
      {
        "title": "Author | 作者",
        "body": "Leo Li (@foxleoly)\nLicense: MIT"
      }
    ],
    "body": "AdGuard Home Skill\n\n🛡️ Query AdGuard Home instances for DNS statistics, blocked domains, and client activity\n🛡️ 查询 AdGuard Home 实例的 DNS 统计、拦截域名和客户端活动\n\nFeatures | 功能特性\n✅ Multi-instance support | 支持多实例配置\n✅ Real-time DNS query statistics | 实时 DNS 查询统计\n✅ Blocked domains leaderboard | 拦截域名排行\n✅ Active client analysis | 活跃客户端分析\n✅ Health status check | 健康状态检查\n✅ Service status monitoring | 服务状态监控\n✅ DNS configuration details | DNS 配置详情\n✅ Filter rules inspection | 过滤规则和列表\n✅ Recent query log | 最近查询日志\n✅ TLS/encryption status | TLS/加密状态\nInstallation | 安装方法\nMethod 1: ClawHub CLI (Recommended) | 方法 1: ClawHub CLI（推荐）\n# Install from ClawHub registry | 从 ClawHub 安装\nclawhub install adguard-home\n\n# Verify installation | 验证安装\nclawhub list | grep adguard-home\n\nMethod 2: Manual Install | 方法 2: 手动安装\n# Clone the repository | 克隆仓库\ngit clone https://github.com/foxleoly/adguard-home-skill.git\ncd adguard-home-skill\n\n# Copy to your skills directory | 复制到技能目录\ncp -r . ~/.openclaw/workspace/skills/adguard-home/\n\nPost-Installation Setup | 安装后配置\n\nCreate configuration file | 创建配置文件:\n\n# Edit adguard-instances.json | 编辑配置文件\nvim ~/.openclaw/workspace/adguard-instances.json\n\n\nAdd your instances | 添加实例:\n\n{\n  \"instances\": {\n    \"dns1\": {\n      \"url\": \"http://192.168.1.1:80\",\n      \"username\": \"admin\",\n      \"password\": \"your-password\"\n    }\n  }\n}\n\n\nSecure the config file | 保护配置文件:\n\nchmod 600 ~/.openclaw/workspace/adguard-instances.json\n\n\nTest the skill | 测试技能:\n\n/adguard stats dns1\n\nUsage | 使用方法\nBasic Commands | 基础命令\n# Statistics & Monitoring | 统计与监控\n/adguard stats [instance]           # DNS statistics | DNS 统计\n/adguard top-clients [instance]     # Top 10 active clients | 活跃客户端 Top 10\n/adguard top-blocked [instance]     # Top 10 blocked domains | 被拦截域名 Top 10\n/adguard health [instance]          # Health check | 健康检查\n/adguard status [instance]          # Service status | 服务状态\n\n# Configuration & Rules | 配置与规则\n/adguard dns-info [instance]        # DNS configuration | DNS 配置详情\n/adguard filter-rules [instance]    # Filter rules and lists | 过滤规则和列表\n/adguard clients [instance]         # Configured clients | 已配置的客户端\n/adguard tls-status [instance]      # TLS/encryption status | TLS/加密状态\n\n# Query Log | 查询日志\n/adguard querylog [instance] [n]    # Recent n queries (default: 10) | 最近 n 条查询\n\nExamples | 命令示例\n# Query dns1 instance statistics | 查询 dns1 实例的统计\n/adguard stats dns1\n\n# Check service status | 检查服务状态\n/adguard status dns1\n\n# View DNS configuration | 查看 DNS 配置\n/adguard dns-info dns1\n\n# View filter rules | 查看过滤规则\n/adguard filter-rules dns1\n\n# View last 20 DNS queries | 查看最近 20 条 DNS 查询\n/adguard querylog dns1 20\n\n# Check TLS status | 检查 TLS 状态\n/adguard tls-status dns1\n\n# If no instance specified, uses the first configured instance | 不指定实例则使用第一个\n/adguard stats\n\nOutput Examples | 输出示例\n\nstats command | stats 命令：\n\n📊 AdGuard Home Statistics (dns1)\nTotal DNS Queries: 141,647\nBlocked Requests: 32,540 (23.0%)\nAvg Response Time: 0.005ms\n\n\nstatus command | status 命令：\n\n🔧 AdGuard Home Status (dns1)\nVersion: v0.107.72\nRunning: ✅ Yes\nProtection: ✅ Enabled\nDNS Port: 53\nHTTP Port: 1080\nLanguage: zh-cn\nDHCP Available: ✅ Yes\n\n\ndns-info command | dns-info 命令：\n\n🌐 DNS Configuration (dns1)\nProtection: ✅ Enabled\nRate Limit: 20 req/s\nUpstream Mode: parallel\nCache: ✅ 4MB\nDNSSEC: ❌ Disabled\nIPv6: ✅ Enabled\n\nUpstream DNS Servers:\n  1. https://dns.alidns.com/dns-query\n  2. 192.168.1.1:53\n  3. 8.8.8.8:53\n\n\nfilter-rules command | filter-rules 命令：\n\n🛡️ Filter Rules (dns1)\nFiltering: ✅ Enabled\nUpdate Interval: 12 hours\nUser Rules: 6 custom rules\n\nFilter Lists:\n  1. ✅ AdAway Default Blocklist (6540 rules)\n  2. ✅ gh_100M_block (1110461 rules)\n  3. ✅ 三角洲行动黑名单 (78126 rules)\n\n\nquerylog command | querylog 命令：\n\n📜 Recent DNS Queries (dns1) - Last 5 entries\n\n1. [12:26:44 AM] 🚫 BLOCKED api.telegram.org (192.168.145.188)\n2. [12:26:43 AM] 🚫 BLOCKED self.events.data.microsoft.com (192.168.145.123)\n   Rule: ||events.data.microsoft.com^\n3. [12:26:42 AM] ✅ OK open.feishu.cn (192.168.145.188)\n\nConfiguration | 配置说明\n🔒 Security Best Practices | 安全最佳实践\n\n⚠️ Important: Do not store plaintext credentials in configuration files. Use one of these secure methods:\n⚠️ 重要： 不要在配置文件中存储明文凭证。请使用以下安全方式之一：\n\nOption 1: Environment Variables (Recommended) | 方案一：环境变量（推荐）\n\nSet environment variables before running commands:\n运行命令前设置环境变量：\n\nexport ADGUARD_URL=\"http://192.168.145.249:1080\"\nexport ADGUARD_USERNAME=\"admin\"\nexport ADGUARD_PASSWORD=\"your-secure-password\"\n\nOption 2: 1Password CLI | 方案二：1Password CLI\n\nUse op read to inject secrets at runtime:\n使用 op read 在运行时注入密钥：\n\nexport ADGUARD_PASSWORD=$(op read \"op://vault/AdGuard/credential\")\n\nOption 3: Workspace Config (Local Development Only) | 方案三：工作区配置（仅本地开发）\n\nFor local development, create adguard-instances.json in your current workspace root only:\n本地开发时，仅在当前工作区根目录创建 adguard-instances.json：\n\n{\n  \"instances\": {\n    \"dns1\": {\n      \"url\": \"http://192.168.145.249:1080\",\n      \"username\": \"admin\",\n      \"password\": \"your-secure-password\"\n    }\n  }\n}\n\n\n⚠️ Never commit this file to version control. Add it to .gitignore.\n⚠️ 切勿将此文件提交到版本控制。将其添加到 .gitignore。\n\nConfiguration Parameters | 配置参数\nParameter\tDescription\tExample\nurl\tAdGuard Home URL (with port)\thttp://192.168.145.249:1080\nusername\tAdmin username\tadmin\npassword\tAdmin password (use env var or secrets manager)\tyour-secure-password\n参数\t说明\t示例\nurl\tAdGuard Home 访问地址（含端口）\thttp://192.168.145.249:1080\nusername\t管理员用户名\tadmin\npassword\t管理员密码（建议使用环境变量或密钥管理）\tyour-secure-password\nTechnical Details | 技术实现\nAuthentication | 认证方式: Cookie-based (POST /control/login)\nData API | 数据接口: GET /control/* endpoints\nRuntime | 运行环境: Node.js (ES Module)\nEntrypoint | 入口文件: index.js\nAPI Endpoints Used | 使用的 API 端点\n/control/stats - Statistics data | 统计数据\n/control/status - Service status | 服务状态\n/control/dns_info - DNS configuration | DNS 配置\n/control/filtering/status - Filter rules | 过滤规则\n/control/querylog - Query log | 查询日志\n/control/clients - Client management | 客户端管理\n/control/tls/status - TLS status | TLS 状态\nFAQ | 常见问题\n\nQ: Error \"No AdGuard instances configured\"?\nQ: 提示 \"No AdGuard instances configured\"？\n\nA: Ensure environment variables are set (ADGUARD_URL, ADGUARD_USERNAME, ADGUARD_PASSWORD) or create adguard-instances.json in your current workspace root.\nA: 请确保已设置环境变量（ADGUARD_URL、ADGUARD_USERNAME、ADGUARD_PASSWORD），或在当前工作区根目录创建 adguard-instances.json。\n\nQ: Authentication error when querying?\nQ: 查询失败，返回认证错误？\n\nA: Verify username/password in config file. Ensure AdGuard Home service is running.\nA: 检查配置文件中的用户名密码是否正确，确认 AdGuard Home 服务正常运行。\n\nQ: How to add more instances?\nQ: 如何添加更多实例？\n\nA: Add new key-value pairs to the instances object in adguard-instances.json.\nA: 在 adguard-instances.json 的 instances 对象中添加新的键值对即可。\n\nQ: querylog shows no data?\nQ: querylog 没有数据？\n\nA: Ensure query log is enabled in AdGuard Home settings (Settings → DNS Settings → Query log).\nA: 确保 AdGuard Home 设置中已启用查询日志（设置 → DNS 设置 → 查询日志）。\n\nVersion History | 版本历史\nv1.2.1 (2026-02-25) - Credential Security 🔐\n\nSecurity Improvements | 安全改进：\n\n✅ Removed plaintext credential storage - No longer instructs creating config files with admin credentials\n✅ Environment variable support - Secure credential injection via ADGUARD_URL, ADGUARD_USERNAME, ADGUARD_PASSWORD\n✅ 1Password integration - Supports secrets management via op read\n✅ Removed multi-path search - No longer searches ~/.openclaw-*/workspace/ paths\n✅ Workspace-only config - Local config file only checked in skill directory (dev use)\n✅ Updated documentation - Security best practices prominently featured\nv1.2.0 (2026-02-24) - Security Hardening 🔒\n\nSecurity Improvements | 安全改进：\n\n✅ Removed command injection vulnerability - Replaced execSync + curl with native HTTPS client\n✅ Input validation - Sanitized instance names, commands, and parameters\n✅ Command whitelist - Only allowed commands can be executed\n✅ URL validation - Verified URL format before making requests\n✅ Parameter bounds - Limited querylog limit to 1-100 entries\n✅ No shell escaping issues - Pure JavaScript HTTP requests\n\nTechnical Changes | 技术变更：\n\nRemoved dependency on child_process and external curl commands\nImplemented native http/https module for all API calls\nAdded cookie-based session management\nImproved error handling and validation\nv1.1.0 (2026-02-24) - Enhanced\n\nNew Commands | 新增命令：\n\nstatus - Service status (version, protection, ports) | 服务状态（版本、保护、端口）\ndns-info - DNS configuration details | DNS 配置详情\nfilter-rules - Filter rules and lists | 过滤规则和列表\nquerylog [n] - Recent DNS queries | 最近 DNS 查询\nclients - Configured clients | 已配置的客户端\ntls-status - TLS/encryption status | TLS/加密状态\n\nImprovements | 改进：\n\nBilingual documentation (Chinese/English) | 中英文双语文档\nBetter error handling | 更好的错误处理\nEnhanced output formatting | 增强的输出格式\nv1.0.0 (2026-02-24) - Initial\n\nFeatures | 功能：\n\nstats/top-clients/top-blocked/health commands | 支持 stats/top-clients/top-blocked/health 命令\nMulti-instance configuration support | 多实例配置支持\nES Module implementation | ES Module 实现\nAuthor | 作者\n\nLeo Li (@foxleoly)\nLicense: MIT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/foxleoly/adguard-test",
    "publisherUrl": "https://clawhub.ai/foxleoly/adguard-test",
    "owner": "foxleoly",
    "version": "1.2.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/adguard-test",
    "downloadUrl": "https://openagent3.xyz/downloads/adguard-test",
    "agentUrl": "https://openagent3.xyz/skills/adguard-test/agent",
    "manifestUrl": "https://openagent3.xyz/skills/adguard-test/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/adguard-test/agent.md"
  }
}