Que fait cli-anything-adguardhome ?
Bloqueur de publicités à l'échelle du réseau et gestion DNS via l'API REST d'AdGuard Home. Conçu pour les agents IA et les utilisateurs avancés qui doivent gérer le filtrage, les réécritures DNS, les clients, le DHCP, et les journaux de requêtes sans interface graphique.
Installation
Cette CLI est installée dans le cadre du package cli-anything-adguardhome :
pip install cli-anything-adguardhome
Prérequis :
- Python 3.10+
- AdGuard Home doit être installé et en cours d'exécution
- Installer AdGuard Home :
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-adguardhome --help
# Démarrer le mode REPL interactif
cli-anything-adguardhome
# Vérifier le statut du serveur
cli-anything-adguardhome server status
# Exécuter avec une sortie JSON (pour les agents)
cli-anything-adguardhome --json server status
Mode REPL
Lorsqu'il est invoqué sans sous-commande, la CLI entre dans une session REPL interactive :
cli-anything-adguardhome
# Saisissez les commandes de manière interactive avec complétion par tabulation et historique
Groupes de commandes
Config
Gestion de la connexion et de la configuration.
| Commande | Description |
|---|---|
show | Afficher la configuration de connexion actuelle |
save | Enregistrer les paramètres de connexion dans un fichier de configuration |
test | Tester la connexion à AdGuard Home |
Server
Commandes de statut et de contrôle du serveur.
| Commande | Description |
|---|---|
status | Afficher le statut de protection du serveur |
version | Afficher la version d'AdGuard Home |
restart | Redémarrer le serveur AdGuard Home |
Filter
Gestion des listes de filtres DNS.
| Commande | Description |
|---|---|
list | Lister toutes les listes de filtres configurées |
status | Afficher le statut du filtrage |
toggle | Activer ou désactiver le filtrage globalement |
add | Ajouter une nouvelle liste de filtres par URL |
remove | Supprimer une liste de filtres |
enable | Activer une liste de filtres spécifique |
disable | Désactiver une liste de filtres spécifique |
refresh | Forcer le rafraîchissement de toutes les listes de filtres |
Blocking
Paramètres de contrôle parental, navigation sécurisée et recherche sécurisée.
| Commande | Description |
|---|---|
parental status | Afficher le statut du contrôle parental |
parental enable | Activer le contrôle parental |
parental disable | Désactiver le contrôle parental |
safebrowsing status | Afficher le statut de la navigation sécurisée |
safebrowsing enable | Activer la navigation sécurisée |
safebrowsing disable | Désactiver la navigation sécurisée |
safesearch status | Afficher le statut de la recherche sécurisée |
safesearch enable | Activer la recherche sécurisée |
safesearch disable | Désactiver la recherche sécurisée |
Blocked-Services
Gérer les services internet bloqués.
| Commande | Description |
|---|---|
list | Lister les services actuellement bloqués |
set | Définir la liste des services bloqués |
Clients
Gestion des appareils clients.
| Commande | Description |
|---|---|
list | Lister tous les clients configurés |
add | Ajouter un nouveau client par nom et IP |
remove | Supprimer un client |
show | Afficher les détails d'un client spécifique |
Stats
Statistiques des requêtes.
| Commande | Description |
|---|---|
show | Afficher les statistiques des requêtes DNS |
reset | Réinitialiser toutes les statistiques |
config | Afficher ou modifier l'intervalle de rétention des statistiques |
Log
Gestion du journal des requêtes DNS.
| Commande | Description |
|---|---|
show | Afficher les entrées récentes du journal des requêtes DNS |
config | Afficher ou modifier les paramètres du journal des requêtes |
clear | Effacer le journal des requêtes |
Rewrite
Règles de réécriture DNS.
| Commande | Description |
|---|---|
list | Lister toutes les règles de réécriture DNS |
add | Ajouter une règle de réécriture DNS |
remove | Supprimer une règle de réécriture DNS |
DHCP
Gestion du serveur DHCP.
| Commande | Description |
|---|---|
status | Afficher le statut du serveur DHCP |
leases | Lister les baux DHCP actifs |
add-static | Ajouter un bail DHCP statique |
remove-static | Supprimer un bail DHCP statique |
TLS
Configuration TLS/HTTPS.
| Commande | Description |
|---|---|
status | Afficher le statut de la configuration TLS |
Exemples
Vérifier le statut du serveur
cli-anything-adguardhome server status
cli-anything-adguardhome server version
Gérer les listes de filtres
# Lister les filtres actuels
cli-anything-adguardhome filter list
# Ajouter une nouvelle liste de blocage
cli-anything-adguardhome filter add --url https://somehost.com/list.txt --name "Ma liste"
# Rafraîchir tous les filtres
cli-anything-adguardhome filter refresh
Réécritures DNS
# Ajouter une entrée DNS locale
cli-anything-adguardhome rewrite add --domain "monserveur.local" --answer "192.168.1.50"
# Lister toutes les réécritures
cli-anything-adguardhome rewrite list
Gestion des clients
cli-anything-adguardhome clients add --name "Mon PC" --ip 192.168.1.100
cli-anything-adguardhome clients list
Statistiques des requêtes
# Afficher les statistiques (lisibles par un humain)
cli-anything-adguardhome stats show
# Afficher les statistiques (JSON pour les agents)
cli-anything-adguardhome --json stats show
Formats de sortie
Toutes les commandes supportent deux modes de sortie :
- Lisible par un humain (par défaut) : tableaux, couleurs, texte formaté
- Lisible par une machine (drapeau
--json) : JSON structuré pour les agents
# Sortie humaine
cli-anything-adguardhome filter list
# Sortie JSON pour les agents
cli-anything-adguardhome --json filter list
Pour les agents IA
Lorsque vous utilisez cette CLI de manière programmatique :
- Utilisez toujours le drapeau
--jsonpour une sortie parsable - Vérifiez les codes de retour - 0 pour succès, non nul pour erreurs
- Analysez la sortie d'erreur (stderr) pour les messages d'erreur en cas d'échec
- Utilisez des chemins absolus pour toutes les opérations sur fichiers
- Testez d'abord la connexion avec
config testavant les autres commandes
Plus d'informations
- Documentation complète : voir README.md dans le package
- Couverture des tests : voir TEST.md dans le package
- Méthodologie : voir HARNESS.md dans cli-anything-plugin
Version
1.0.0