SuperAPI AI 工具集

cli-anything-adguardhome

部署与运维

查看项目

更新于 10-15 12:25

技能介绍

cli-anything-adguardhome 是一个用于 AdGuard Home 的命令行界面工具,通过 AdGuard Home REST API 提供全网广告拦截和 DNS 管理能力。它面向 AI 智能体和高级用户,使其无需图形界面即可管理过滤规则、DNS 重写、客户端、DHCP 和查询日志。

安装

该 CLI 作为 cli-anything-adguardhome 包的一部分安装:

pip install cli-anything-adguardhome

前置条件:

  • Python 3.10+
  • AdGuard Home 必须已安装并运行
  • 安装 AdGuard Home:curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

使用方式

基本命令:

# 显示帮助
cli-anything-adguardhome --help

# 启动交互式 REPL 模式
cli-anything-adguardhome

# 检查服务器状态
cli-anything-adguardhome server status

# 以 JSON 输出运行(供智能体使用)
cli-anything-adguardhome --json server status

REPL 模式:不带子命令调用时,CLI 进入交互式 REPL 会话,支持 Tab 补全和历史记录。

命令组

Config(配置)

连接与配置管理。

  • show:显示当前连接配置
  • save:将连接设置保存到配置文件
  • test:测试与 AdGuard Home 的连接

Server(服务器)

服务器状态与控制命令。

  • status:显示服务器保护状态
  • version:显示 AdGuard Home 版本
  • restart:重启 AdGuard Home 服务器

Filter(过滤器)

DNS 过滤列表管理。

  • list:列出所有已配置的过滤列表
  • status:显示过滤状态
  • toggle:全局启用或禁用过滤
  • add:通过 URL 添加新的过滤列表
  • remove:移除过滤列表
  • enable:启用特定过滤列表
  • disable:禁用特定过滤列表
  • refresh:强制刷新所有过滤列表

Blocking(拦截)

家长控制、安全浏览和安全搜索设置。

  • parental status / parental enable / parental disable:家长控制状态、启用、禁用
  • safebrowsing status / safebrowsing enable / safebrowsing disable:安全浏览状态、启用、禁用
  • safesearch status / safesearch enable / safesearch disable:安全搜索状态、启用、禁用

Blocked-Services(被屏蔽服务)

管理被屏蔽的互联网服务。

  • list:列出当前被屏蔽的服务
  • set:设置被屏蔽服务列表

Clients(客户端)

客户端设备管理。

  • list:列出所有已配置的客户端
  • add:按名称和 IP 添加新客户端
  • remove:移除客户端
  • show:显示特定客户端的详细信息

Stats(统计)

查询统计。

  • show:显示 DNS 查询统计
  • reset:重置所有统计
  • config:查看或更新统计保留间隔

Log(日志)

DNS 查询日志管理。

  • show:显示最近的 DNS 查询日志条目
  • config:查看或更新查询日志设置
  • clear:清除查询日志

Rewrite(重写)

DNS 重写规则。

  • list:列出所有 DNS 重写规则
  • add:添加 DNS 重写规则
  • remove:移除 DNS 重写规则

DHCP

DHCP 服务器管理。

  • status:显示 DHCP 服务器状态
  • leases:列出活动 DHCP 租约
  • add-static:添加静态 DHCP 租约
  • remove-static:移除静态 DHCP 租约

TLS

TLS/HTTPS 配置。

  • status:显示 TLS 配置状态

示例

检查服务器状态:

cli-anything-adguardhome server status
cli-anything-adguardhome server version

管理过滤列表:

# 列出当前过滤器
cli-anything-adguardhome filter list

# 添加新的拦截列表
cli-anything-adguardhome filter add --url https://somehost.com/list.txt --name "My List"

# 刷新所有过滤器
cli-anything-adguardhome filter refresh

DNS 重写:

# 添加本地 DNS 条目
cli-anything-adguardhome rewrite add --domain "myserver.local" --answer "192.168.1.50"

# 列出所有重写
cli-anything-adguardhome rewrite list

客户端管理:

cli-anything-adguardhome clients add --name "My PC" --ip 192.168.1.100
cli-anything-adguardhome clients list

查询统计:

# 显示统计(人类可读)
cli-anything-adguardhome stats show

# 显示统计(JSON,供智能体使用)
cli-anything-adguardhome --json stats show

输出格式

所有命令支持双输出模式:

  • 人类可读(默认):表格、颜色、格式化文本
  • 机器可读(--json 标志):结构化 JSON,供智能体使用
# 人类输出
cli-anything-adguardhome filter list

# 供智能体使用的 JSON 输出
cli-anything-adguardhome --json filter list

面向 AI 智能体

以编程方式使用此 CLI 时:

  • 始终使用 --json 标志以获得可解析的输出
  • 检查返回码——0 表示成功,非零表示错误
  • 失败时解析 stderr 获取错误消息
  • 所有文件操作使用绝对路径
  • 在执行其他命令前先用 config test 测试连接

更多信息

  • 完整文档:参见包中的 README.md
  • 测试覆盖:参见包中的 TEST.md
  • 方法论:参见 cli-anything-plugin 中的 HARNESS.md

版本:1.0.0