webcli — 专为AI Agent打造的无头浏览器CLI工具
webcli 是由 @erdinccurebal 开发的一款命令行无头浏览器工具,基于 Playwright Chromium 引擎构建,专为AI Agent和自动化工作流设计。其核心定位是解决传统Web自动化工具(如curl、传统爬虫)无法处理动态JavaScript渲染页面、复杂用户交互和表单提交的痛点。
核心用法
该工具采用守护进程+命令式交互架构,所有操作通过 webcli 命令完成:
基础导航:webcli go <url> 自动启动守护进程并导航,支持 -w networkidle 等待网络稳定,-t 多标签页管理。
内容提取:提供三层读取能力——webcli source 获取可见文本;webcli html/attr/eval 获取DOM细节;`webcli snapshot` 生成带确定性引用(@e1, @e2)的无障碍树,这是AI Agent最推荐的交互方式。
智能交互:支持 click/fill/select/upload/drag 等完整操作,关键设计是双模式定位——既可通过可见文本/CSS选择器,更推荐通过 snapshot 生成的 @ref 引用,大幅降低AI解析DOM的幻觉风险。
高级能力:截图/PDF导出、控制台错误捕获、对话框处理、iframe切换、localStorage/cookie管理、状态持久化、设备模拟、网络日志追踪。
显著优点
1. AI原生设计:snapshot 命令生成结构化无障碍树并分配确定性引用,使AI能可靠地"看见"可交互元素,告别CSS选择器猜测
2. 完整的浏览器能力:非简单HTTP客户端,是真实Chromium,支持React/Vue等现代框架、文件上传、复杂表单、SPA路由
3. 状态持久化:state save/load 支持会话恢复,适合多步骤、跨会话的长期任务
4. 生产级健壮性:内置等待机制(wait/waitfor/sleep)、超时控制、错误恢复、多标签隔离
潜在局限
1. Node.js依赖:需全局安装npm包及Playwright Chromium(~100MB+),环境准备较重
2. 守护进程架构:后台驻留进程若异常崩溃需手动 webcli stop 重启,对无状态容器化部署不够友好
3. 无内置代理/旋转IP:高频爬取场景需自行配置系统级代理
4. 社区生态较新:GitHub仓库相对年轻,长期维护承诺待观察
适合人群
- AI Agent开发者:需要让LLM可靠操作Web界面的场景(自动化测试、数据录入、信息检索)
- DevOps/自动化工程师:替代Selenium/Puppeteer的轻量命令行方案
- 数据研究员:需要与JavaScript重度渲染的现代Web应用交互
常规风险
- Web安全风险:访问恶意站点可能导致XSS payload在守护进程上下文执行(虽无头但存在理论风险)
- 会话混淆:多标签页共享cookie/Storage,敏感操作需物理隔离或及时
state clear - 反检测:无内置 stealth 插件,部分站点可能检测 Playwright 特征
- 资源泄漏:守护进程未自动退出,长期运行需监控内存