关于 cli-anything-browser
cli-anything-browser 是通过 DOMShell MCP 服务执行浏览器自动化的命令行工具,面向需要用 Agent 操作网页的工作流。它以类似文件系统的无障碍树路径浏览页面,并提供导航、搜索和交互命令。
主要功能
- 01打开、刷新和切换网页
- 02按无障碍树路径浏览页面
- 03搜索页面文本
- 04点击元素并输入文本
- 05支持 JSON 输出和持久守护进程
适用场景
- 01浏览网页并检查页面结构
- 02搜索登录入口并点击按钮
- 03填写网页表单
- 04在多步 Agent 操作中复用连接
MCP 相关
该 CLI 使用 DOMShell MCP 服务进行浏览器自动化。守护进程模式可让后续命令复用 MCP 连接。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-browser安装后在 Claude Code 中输入/cli-anything-browser确认已加载。
详细介绍
cli-anything-browser
一个使用 DOMShell 的 MCP 服务进行浏览器自动化的命令行界面。使用文件系统命令浏览网页:ls、cd、cat、grep、click。
安装
前置条件
-
Node.js 和 npx(用于 DOMShell MCP 服务):
# Install Node.js from https://nodejs.org/ npx --version -
Chrome/Chromium 以及 DOMShell 扩展:
- 在 Chrome 中安装扩展
- 使用 CLI 前确保 Chrome 正在运行
-
Python 3.10+
安装 CLI
cd browser/agent-harness
pip install -e .
命令组
page — 页面导航
page open <url>— 导航到 URLpage reload— 重新加载当前页面page back— 在历史记录中后退page forward— 在历史记录中前进page info— 显示当前页面信息
fs — 文件系统命令(无障碍树)
fs ls [path]— 列出路径下的元素fs cd <path>— 切换目录fs cat [path]— 读取元素内容fs grep <pattern> [path]— 搜索文本模式fs pwd— 打印工作目录
act — 操作命令
act click <path>— 点击元素act type <path> <text>— 在输入框中输入文本
session — 会话管理
session status— 显示会话状态session daemon-start— 启动持久守护进程模式session daemon-stop— 停止守护进程模式
使用示例
基本导航
# Open a page
cli-anything-browser page open https://example.com
# Explore structure
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls
# Go back to root
cli-anything-browser fs cd /
搜索并点击
cli-anything-browser fs grep "Login"
cli-anything-browser act click /main/button[0]
表单填写
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
JSON 输出
cli-anything-browser --json fs ls /
守护进程模式(更快的交互式使用)
# Start persistent connection
cli-anything-browser session daemon-start
# Run commands (uses persistent connection)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
# Stop daemon when done
cli-anything-browser session daemon-stop
交互式 REPL
cli-anything-browser
路径语法
DOMShell 为无障碍树使用类似文件系统的路径:
/ — Root (document)
/main — Main landmark
/main/div[0] — First div in main
/main/div[0]/button[2] — Third button in first div
- 数组索引从 0 开始:
button[0]是第一个按钮 - 使用
..向上一级 - 使用
/表示根目录
面向 Agent 的指南
用于解析的 JSON 输出
所有命令都支持 --json 标志以输出机器可读的结果:
cli-anything-browser --json fs ls /
返回:
{
"path": "/",
"entries": [
{"name": "main", "role": "landmark", "path": "/main"}
]
}
错误处理
CLI 针对常见问题提供清晰的错误消息:
- 找不到 npx:从 https://nodejs.org/ 安装 Node.js
- 找不到 DOMShell:运行
npx @apireno/domshell --version - MCP 调用失败:安装 DOMShell Chrome 扩展
在运行命令前检查 is_available() 的返回值。
使用守护进程模式提高效率
对于包含多个命令的 Agent 工作流,请使用守护进程模式:
- 启动守护进程:
cli-anything-browser session daemon-start - 运行命令:每条命令复用 MCP 连接
- 停止守护进程:
cli-anything-browser session daemon-stop
这样可以避免每条命令 1-3 秒的冷启动开销。
链接
安全注意事项
重要:在将本 CLI 与 AI Agent 一起使用时,请注意以下安全注意事项:
URL 限制
浏览器工具链会在导航前验证所有 URL:
- 必须显式指定协议:URL 必须包含
http://或https://协议(不带协议的 URL 如example.com会被拒绝) - 阻止的协议:
file://、javascript://、data://、vbscript://、about://、chrome://以及浏览器内部协议 - 允许的协议:仅
http://和https://(可通过CLI_ANYTHING_BROWSER_ALLOWED_SCHEMES配置) - 阻止私有网络:可通过
CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true启用(默认禁用)
DOM 内容风险
无障碍树包含页面上所有可见和隐藏的元素。恶意网站可能会:
- 构造带有操纵性文本的 ARIA 标签(例如,“忽略之前的指令”)
- 利用 aria-hidden 元素注入用户不可见的内容
- 创建误导导航的混乱 DOM 结构
缓解措施:与不受信任的网站交互时,请考虑:
- 使用
--json标志输出结构化结果,更易于安全解析 - 在将 DOM 内容纳入提示词之前对其进行清理或过滤
- 将导航限制在受信任的域名内
私有网络访问
默认情况下,浏览器可以访问 localhost 和私有网络(192.168.x.x、10.x.x.x 等)。如需阻止:
export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080 # Will be blocked
会话隔离
多个浏览器会话共享同一个 Chrome 实例。Cookie 和身份验证状态可能会跨会话保留。对于敏感操作,请考虑:
- 使用 Chrome 的访客模式或无痕模式
- 在会话之间清除 Cookie
- 为不同的安全场景使用独立的 Chrome 配置文件