Communitygithub.com

cli-anything-browser

CLI de automatización de navegador que usa el servidor MCP de DOMShell. Navega páginas web con comandos de sistema de archivos: `ls`, `cd`, `cat`, `grep`, `click`.

¿Qué es cli-anything-browser?

**cli-anything-browser** es una herramienta de línea de comandos que permite automatizar navegadores web utilizando el servidor MCP de DOMShell. Expone el Árbol de Accesibilidad de una página web como un sistema de archivos virtual, lo que permite navegar, buscar y hacer clic en elementos mediante comandos familiares como `ls`, `cd`, `cat`, `grep` y `click`. Es compatible con cualquier plataforma que ejecute Chrome/Chromium, Node.js y Python 3.10+. El flujo de trabajo típico comienza con `page open <url>`, seguido de `fs ls /` para explorar la página, `fs cd` para navegar por la jerarquía del DOM, y `act click` o `act type` para interactuar con los elementos. Incluye un modo daemon para evitar reinicios en frío (1-3 segundos) en flujos de trabajo con múltiples comandos, y un modo interactivo REPL. Ofrece salida `--json` estructurada para un análisis automatizado seguro por parte de agentes de IA. Las consideraciones de seguridad incluyen restricciones de esquemas URL, bloqueo de redes privadas opcional y riesgos de contenido DOM en sitios no confiables.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace cli-anything-browser?

Interfaz de línea de comandos para automatización de navegador usando el servidor MCP de DOMShell. Navega páginas web usando comandos de sistema de archivos: ls, cd, cat, grep, click.

Instalación

Requisitos previos

  1. Node.js y npx (para el servidor MCP de DOMShell):

    # Instalar Node.js desde https://nodejs.org/
    npx --version
    
  2. Chrome/Chromium con la extensión DOMShell:

    • Instala la extensión en Chrome
    • Asegúrate de que Chrome esté ejecutándose antes de usar la CLI
  3. Python 3.10+

Instalar la CLI

cd browser/agent-harness
pip install -e .

Grupos de comandos

page — Navegación de página

  • page open <url> — Navegar a una URL
  • page reload — Recargar la página actual
  • page back — Retroceder en el historial
  • page forward — Avanzar en el historial
  • page info — Mostrar información de la página actual

fs — Comandos del sistema de archivos (Árbol de Accesibilidad)

  • fs ls [ruta] — Listar elementos en la ruta
  • fs cd <ruta> — Cambiar de directorio
  • fs cat [ruta] — Leer contenido del elemento
  • fs grep <patrón> [ruta] — Buscar un patrón de texto
  • fs pwd — Imprimir el directorio de trabajo

act — Comandos de acción

  • act click <ruta> — Hacer clic en un elemento
  • act type <ruta> <texto> — Escribir texto en un campo de entrada

session — Gestión de sesiones

  • session status — Mostrar estado de la sesión
  • session daemon-start — Iniciar modo daemon persistente
  • session daemon-stop — Detener modo daemon

Ejemplos de uso

Navegación básica

# Abrir una página
cli-anything-browser page open https://example.com

# Explorar estructura
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls

# Volver a la raíz
cli-anything-browser fs cd /

Búsqueda y clic

cli-anything-browser fs grep "Iniciar sesión"
cli-anything-browser act click /main/button[0]

Rellenar formulario

cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]

Salida JSON

cli-anything-browser --json fs ls /

Modo Daemon (uso interactivo más rápido)

# Iniciar conexión persistente
cli-anything-browser session daemon-start

# Ejecutar comandos (usa la conexión persistente)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main

# Detener daemon al terminar
cli-anything-browser session daemon-stop

REPL interactivo

cli-anything-browser

Sintaxis de rutas

DOMShell usa una ruta similar a sistema de archivos para el Árbol de Accesibilidad:

/                           — Raíz (documento)
/main                       — Hito principal
/main/div[0]                — Primer div en main
/main/div[0]/button[2]      — Tercer botón en el primer div
  • Los índices de arreglo son base 0: button[0] es el primer botón
  • Usa .. para subir un nivel
  • Usa / para la raíz

Orientación específica para agentes

Salida JSON para análisis

Todos los comandos admiten la bandera --json para obtener una salida legible por máquina:

cli-anything-browser --json fs ls /

Devuelve:

{
  "path": "/",
  "entries": [
    {"name": "main", "role": "landmark", "path": "/main"}
  ]
}

Manejo de errores

La CLI proporciona mensajes de error claros para problemas comunes:

  • npx no encontrado: Instalar Node.js desde https://nodejs.org/
  • DOMShell no encontrado: Ejecutar npx @apireno/domshell --version
  • Llamada MCP fallida: Instalar la extensión DOMShell de Chrome

Verifica el valor de retorno de is_available() antes de ejecutar comandos.

Modo Daemon para eficiencia

Para flujos de trabajo de agente con múltiples comandos, usa el modo daemon:

  1. Iniciar daemon: cli-anything-browser session daemon-start
  2. Ejecutar comandos: Cada comando reutiliza la conexión MCP
  3. Detener daemon: cli-anything-browser session daemon-stop

Esto evita la sobrecarga de 1-3 segundos de arranque en frío para cada comando.

Enlaces

Consideraciones de seguridad

IMPORTANTE: Al usar esta CLI con agentes de IA, ten en cuenta las siguientes consideraciones de seguridad:

Restricciones de URL

El arnés del navegador valida todas las URLs antes de la navegación:

  • Esquema explícito requerido: Las URLs deben incluir el esquema http:// o https:// (las URLs sin esquema como ejemplo.com son rechazadas)
  • Esquemas bloqueados: file://, javascript://, data://, vbscript://, about://, chrome:// y esquemas internos del navegador
  • Esquemas permitidos: Solo http:// y https:// (configurable mediante CLI_ANYTHING_BROWSER_ALLOWED_SCHEMES)
  • Bloqueo de red privada: Opcional mediante CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true (deshabilitado por defecto)

Riesgos del contenido DOM

El Árbol de Accesibilidad incluye todos los elementos visibles y ocultos de una página. Los sitios web maliciosos podrían:

  • Crear etiquetas ARIA con texto manipulador (por ejemplo, "Ignorar instrucciones anteriores")
  • Usar elementos ocultos por aria-hidden para inyectar contenido no visible para los usuarios
  • Crear estructuras DOM confusas que engañen la navegación

Mitigación: Al interactuar con sitios web no confiables, considera:

  1. Usar la bandera --json para obtener una salida estructurada más fácil de analizar de forma segura
  2. Sanear o filtrar el contenido DOM antes de incluirlo en prompts
  3. Limitar la navegación a dominios confiables

Acceso a red privada

Por defecto, el navegador puede acceder a localhost y redes privadas (192.168.x.x, 10.x.x.x, etc.). Para bloquearlo:

export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080  # Será bloqueado

Aislamiento de sesiones

Varias sesiones del navegador comparten la misma instancia de Chrome. Las cookies y el estado de autenticación pueden persistir entre sesiones. Para operaciones sensibles, considera:

  1. Usar el modo invitado o incógnito de Chrome
  2. Limpiar las cookies entre sesiones
  3. Usar perfiles de Chrome separados para diferentes contextos de seguridad

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 relacionados