¿Qué hace cli-anything-adguardhome?
Bloqueo de anuncios en toda la red y gestión de DNS a través de la API REST de AdGuard Home. Diseñado para agentes de IA y usuarios avanzados que necesitan gestionar filtrado, reescrituras de DNS, clientes, DHCP y registros de consultas sin una GUI.
Instalación
Esta CLI se instala como parte del paquete cli-anything-adguardhome:
pip install cli-anything-adguardhome
Requisitos previos:
- Python 3.10+
- AdGuard Home debe estar instalado y en ejecución
- Instalar AdGuard Home:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Uso
Comandos básicos
# Mostrar ayuda
cli-anything-adguardhome --help
# Iniciar modo REPL interactivo
cli-anything-adguardhome
# Verificar estado del servidor
cli-anything-adguardhome server status
# Ejecutar con salida JSON (para consumo por parte del agente)
cli-anything-adguardhome --json server status
Modo REPL
Cuando se invoca sin un subcomando, la CLI entra en una sesión REPL interactiva:
cli-anything-adguardhome
# Ingrese comandos interactivamente con autocompletado y historial
Grupos de comandos
Config
Gestión de conexión y configuración.
| Comando | Descripción |
|---|---|
show | Mostrar la configuración de conexión actual |
save | Guardar la configuración de conexión en un archivo de configuración |
test | Probar la conexión con AdGuard Home |
Server
Comandos de estado y control del servidor.
| Comando | Descripción |
|---|---|
status | Mostrar el estado de protección del servidor |
version | Mostrar la versión de AdGuard Home |
restart | Reiniciar el servidor AdGuard Home |
Filter
Gestión de listas de filtros DNS.
| Comando | Descripción |
|---|---|
list | Listar todas las listas de filtros configuradas |
status | Mostrar el estado del filtrado |
toggle | Activar o desactivar el filtrado globalmente |
add | Agregar una nueva lista de filtros por URL |
remove | Eliminar una lista de filtros |
enable | Activar una lista de filtros específica |
disable | Desactivar una lista de filtros específica |
refresh | Forzar la actualización de todas las listas de filtros |
Blocking
Configuración de control parental, navegación segura y búsqueda segura.
| Comando | Descripción |
|---|---|
parental status | Mostrar el estado del control parental |
parental enable | Activar el control parental |
parental disable | Desactivar el control parental |
safebrowsing status | Mostrar el estado de navegación segura |
safebrowsing enable | Activar la navegación segura |
safebrowsing disable | Desactivar la navegación segura |
safesearch status | Mostrar el estado de búsqueda segura |
safesearch enable | Activar la búsqueda segura |
safesearch disable | Desactivar la búsqueda segura |
Blocked-Services
Gestionar servicios de Internet bloqueados.
| Comando | Descripción |
|---|---|
list | Listar los servicios actualmente bloqueados |
set | Establecer la lista de servicios bloqueados |
Clients
Gestión de dispositivos cliente.
| Comando | Descripción |
|---|---|
list | Listar todos los clientes configurados |
add | Agregar un nuevo cliente por nombre y IP |
remove | Eliminar un cliente |
show | Mostrar detalles de un cliente específico |
Stats
Estadísticas de consultas.
| Comando | Descripción |
|---|---|
show | Mostrar estadísticas de consultas DNS |
reset | Restablecer todas las estadísticas |
config | Ver o actualizar el intervalo de retención de estadísticas |
Log
Gestión de registros de consultas DNS.
| Comando | Descripción |
|---|---|
show | Mostrar entradas recientes del registro de consultas DNS |
config | Ver o actualizar la configuración del registro de consultas |
clear | Limpiar el registro de consultas |
Rewrite
Reglas de reescritura DNS.
| Comando | Descripción |
|---|---|
list | Listar todas las reglas de reescritura DNS |
add | Agregar una regla de reescritura DNS |
remove | Eliminar una regla de reescritura DNS |
DHCP
Gestión del servidor DHCP.
| Comando | Descripción |
|---|---|
status | Mostrar el estado del servidor DHCP |
leases | Listar concesiones DHCP activas |
add-static | Agregar una concesión DHCP estática |
remove-static | Eliminar una concesión DHCP estática |
TLS
Configuración TLS/HTTPS.
| Comando | Descripción |
|---|---|
status | Mostrar el estado de la configuración TLS |
Ejemplos
Verificar estado del servidor
cli-anything-adguardhome server status
cli-anything-adguardhome server version
Gestionar listas de filtros
# Listar filtros actuales
cli-anything-adguardhome filter list
# Agregar una nueva lista de bloqueo
cli-anything-adguardhome filter add --url https://somehost.com/list.txt --name "Mi Lista"
# Actualizar todos los filtros
cli-anything-adguardhome filter refresh
Reescrituras DNS
# Agregar una entrada DNS local
cli-anything-adguardhome rewrite add --domain "miservidor.local" --answer "192.168.1.50"
# Listar todas las reescrituras
cli-anything-adguardhome rewrite list
Gestión de clientes
cli-anything-adguardhome clients add --name "Mi PC" --ip 192.168.1.100
cli-anything-adguardhome clients list
Estadísticas de consultas
# Mostrar estadísticas (legible para humanos)
cli-anything-adguardhome stats show
# Mostrar estadísticas (JSON para agentes)
cli-anything-adguardhome --json stats show
Formatos de salida
Todos los comandos admiten modos de salida dual:
- Legible para humanos (predeterminado): Tablas, colores, texto formateado
- Legible para máquinas (bandera
--json): JSON estructurado para consumo por parte del agente
# Salida humana
cli-anything-adguardhome filter list
# Salida JSON para agentes
cli-anything-adguardhome --json filter list
Para agentes de IA
Al usar esta CLI de forma programática:
- Use siempre la bandera
--jsonpara obtener salida analizable - Verifique los códigos de retorno - 0 para éxito, distinto de cero para errores
- Analice stderr para mensajes de error en caso de fallo
- Use rutas absolutas para todas las operaciones con archivos
- Pruebe la conexión primero con
config testantes de otros comandos
Más información
- Documentación completa: Ver README.md en el paquete
- Cobertura de pruebas: Ver TEST.md en el paquete
- Metodología: Ver HARNESS.md en cli-anything-plugin
Versión
1.0.0