Communitygithub.com

cli-anything-browser

Automatisation de navigateur en ligne de commande via le serveur MCP de DOMShell. Parcourt Chrome comme un système de fichiers.

Qu'est-ce que cli-anything-browser ?

Ce skill fournit une interface en ligne de commande pour automatiser un navigateur web en utilisant le serveur MCP de DOMShell. Il permet de naviguer sur les pages web avec des commandes de système de fichiers : `ls`, `cd`, `cat`, `grep`, `click`. Il est conçu pour les agents IA et les workflows de développement, supportant Chrome/Chromium avec l'extension DOMShell. Le skill propose des commandes groupées pour la navigation (`page`), la manipulation de l'arbre d'accessibilité (`fs`), les actions (`act`), et la gestion de session (`session`). Il offre un mode démon pour éviter les surcoûts de démarrage à froid et un REPL interactif. Les entrées et sorties peuvent être en JSON pour faciliter l'analyse par les agents. Des considérations de sécurité importantes sont intégrées, notamment la validation d'URL, le blocage de schémas dangereux, la protection contre les contenus DOM malveillants, et le contrôle d'accès aux réseaux privés.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-browser

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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

  1. Node.js et npx (pour le serveur MCP DOMShell) :

    # Installer Node.js depuis https://nodejs.org/
    npx --version
    
  2. 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
  3. 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 URL
  • page reload — Recharger la page actuelle
  • page back — Revenir en arrière dans l'historique
  • page forward — Avancer dans l'historique
  • page 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épertoire
  • fs cat [chemin] — Lire le contenu d'un élément
  • fs grep <motif> [chemin] — Rechercher un motif textuel
  • fs pwd — Afficher le répertoire de travail courant

act — Commandes d'action

  • act click <chemin> — Cliquer sur un élément
  • act type <chemin> <texte> — Saisir du texte dans un champ

session — Gestion de session

  • session status — Afficher l'état de la session
  • session daemon-start — Démarrer le mode démon persistant
  • session 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 :

  1. Démarrer le démon : cli-anything-browser session daemon-start
  2. Exécuter les commandes : chaque commande réutilise la connexion MCP
  3. 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:// ou https:// (les URL sans schéma comme exemple.com sont rejetées)
  • Schémas bloqués : file://, javascript://, data://, vbscript://, about://, chrome://, et les schémas internes au navigateur
  • Schémas autorisés : http:// et https:// uniquement (configurable via CLI_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 :

  1. D'utiliser l'option --json pour une sortie structurée plus facile à analyser en toute sécurité
  2. D'assainir ou de filtrer le contenu DOM avant de l'inclure dans les invites
  3. 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 :

  1. D'utiliser le mode invité ou incognito de Chrome
  2. D'effacer les cookies entre les sessions
  3. D'utiliser des profils Chrome distincts pour différents contextes de sécurité

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-blender

>-

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-cloudcompare

Command-line interface for CloudCompare — Agent-friendly harness for CloudCompare, the open-source 3D point cloud and mesh processing software. Supports 41 commands across 9 groups: project management, session control, point cloud operations (subsample, filter, segment, analyze), mesh operations, distance computation (C2C, C2M), transformations (ICP, matrix), export (LAS/LAZ/PLY/PCD/OBJ/STL/E57), and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

cli-anything-inkscape

>-

Skills associés