Que fait cli-anything-browser ?
Une interface en ligne de commande pour l'automatisation de navigateur utilisant le serveur MCP de DOMShell. Naviguez sur les pages web avec des commandes de système de fichiers : ls, cd, cat, grep, click.
Installation
Prérequis
-
Node.js et npx (pour le serveur MCP DOMShell) :
# Installer Node.js depuis https://nodejs.org/ npx --version -
Chrome/Chromium avec l'extension DOMShell :
- Installer l'extension dans Chrome
- Assurez-vous que Chrome est en cours d'exécution avant d'utiliser la CLI
-
Python 3.10+
Installer la CLI
cd browser/agent-harness
pip install -e .
Groupes de commandes
page — Navigation de page
page open <url>— Naviguer vers une URLpage reload— Recharger la page actuellepage back— Revenir en arrière dans l'historiquepage forward— Avancer dans l'historiquepage info— Afficher les informations de la page actuelle
fs — Commandes de système de fichiers (Arbre d'accessibilité)
fs ls [chemin]— Lister les éléments à un chemin donnéfs cd <chemin>— Changer de répertoirefs cat [chemin]— Lire le contenu d'un élémentfs grep <motif> [chemin]— Rechercher un motif textuelfs pwd— Afficher le répertoire de travail courant
act — Commandes d'action
act click <chemin>— Cliquer sur un élémentact type <chemin> <texte>— Saisir du texte dans un champ
session — Gestion de session
session status— Afficher l'état de la sessionsession daemon-start— Démarrer le mode démon persistantsession daemon-stop— Arrêter le mode démon
Exemples d'utilisation
Navigation basique
# Ouvrir une page
cli-anything-browser page open https://example.com
# Explorer la structure
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls
# Revenir à la racine
cli-anything-browser fs cd /
Recherche et clic
cli-anything-browser fs grep "Connexion"
cli-anything-browser act click /main/button[0]
Remplissage de formulaire
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
Sortie JSON
cli-anything-browser --json fs ls /
Mode démon (utilisation interactive plus rapide)
# Démarrer une connexion persistante
cli-anything-browser session daemon-start
# Exécuter des commandes (utilise la connexion persistante)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
# Arrêter le démon une fois terminé
cli-anything-browser session daemon-stop
REPL interactif
cli-anything-browser
Syntaxe des chemins
DOMShell utilise un chemin de type système de fichiers pour l'arbre d'accessibilité :
/ — Racine (document)
/main — Point de repère principal
/main/div[0] — Premier div dans main
/main/div[0]/button[2] — Troisième bouton dans le premier div
- Les indices de tableau sont basés sur 0 :
button[0]est le premier bouton - Utilisez
..pour remonter d'un niveau - Utilisez
/pour la racine
Conseils spécifiques aux agents
Sortie JSON pour l'analyse
Toutes les commandes prennent en charge l'option --json pour une sortie lisible par machine :
cli-anything-browser --json fs ls /
Retourne :
{
"path": "/",
"entries": [
{"name": "main", "role": "landmark", "path": "/main"}
]
}
Gestion des erreurs
La CLI fournit des messages d'erreur clairs pour les problèmes courants :
- npx introuvable : Installez Node.js depuis https://nodejs.org/
- DOMShell introuvable : Exécutez
npx @apireno/domshell --version - Échec de l'appel MCP : Installez l'extension Chrome DOMShell
Vérifiez la valeur de retour de is_available() avant d'exécuter des commandes.
Mode démon pour l'efficacité
Pour les workflows d'agent avec plusieurs commandes, utilisez le mode démon :
- Démarrer le démon :
cli-anything-browser session daemon-start - Exécuter les commandes : chaque commande réutilise la connexion MCP
- Arrêter le démon :
cli-anything-browser session daemon-stop
Cela évite le surcoût de 1 à 3 secondes de démarrage à froid pour chaque commande.
Liens
Considérations de sécurité
IMPORTANT : Lors de l'utilisation de cette CLI avec des agents IA, tenez compte des considérations de sécurité suivantes :
Restrictions d'URL
Le harnais du navigateur valide toutes les URL avant la navigation :
- Schéma explicite requis : Les URL doivent inclure le schéma
http://ouhttps://(les URL sans schéma commeexemple.comsont rejetées) - Schémas bloqués :
file://,javascript://,data://,vbscript://,about://,chrome://, et les schémas internes au navigateur - Schémas autorisés :
http://ethttps://uniquement (configurable viaCLI_ANYTHING_BROWSER_ALLOWED_SCHEMES) - Blocage du réseau privé : Optionnel via
CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true(désactivé par défaut)
Risques liés au contenu DOM
L'arbre d'accessibilité inclut tous les éléments visibles et cachés d'une page. Les sites web malveillants peuvent :
- Créer des libellés ARIA avec un texte manipulateur (par exemple, "Ignorez les instructions précédentes")
- Utiliser des éléments aria-hidden pour injecter du contenu non visible pour les utilisateurs
- Créer des structures DOM confuses qui induisent la navigation en erreur
Atténuation : Lors de l'interaction avec des sites web non fiables, envisagez :
- D'utiliser l'option
--jsonpour une sortie structurée plus facile à analyser en toute sécurité - D'assainir ou de filtrer le contenu DOM avant de l'inclure dans les invites
- De limiter la navigation aux domaines de confiance
Accès au réseau privé
Par défaut, le navigateur peut accéder à localhost et aux réseaux privés (192.168.x.x, 10.x.x.x, etc.). Pour bloquer :
export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080 # Sera bloqué
Isolation de session
Plusieurs sessions de navigateur partagent la même instance Chrome. Les cookies et l'état d'authentification peuvent persister entre les sessions. Pour les opérations sensibles, envisagez :
- D'utiliser le mode invité ou incognito de Chrome
- D'effacer les cookies entre les sessions
- D'utiliser des profils Chrome distincts pour différents contextes de sécurité