tappi

✨ CDP浏览器控制 · 省90%Token

CDP协议驱动的轻量级浏览器控制工具,专为AI Agent设计,相比内置浏览器工具节省3-10倍token,支持智能点击、自动填充、文件上传及Shadow DOM穿透。

收藏
5k
安装
1.5k
版本
3.4.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

tappi 是一款基于 Chrome DevTools Protocol (CDP) 的轻量级浏览器控制 CLI,专为 AI Agent 场景优化。核心设计理念是最小化输出、最大化可操作性——通过索引化交互元素列表,让 Agent 无需解析复杂的可访问性树即可直接执行操作。

基础工作流:
1. bjs open <url> 导航至目标页面

2. bjs elements 获取可交互元素索引列表(自动穿透 Shadow DOM)

3. bjs click <index> / bjs type <index> <text> 执行操作

4. bjs textbjs screenshot 验证结果

智能命令 vs 底层命令: 前者(clicktypepaste)内置焦点管理、验证和回退机制;后者(focuscheckeval)提供细粒度控制,用于解决边缘情况。

特殊场景支持:

  • Canvas 应用:Google Sheets/Docs/Figma 等使用 bjs keys 发送原始键盘事件
  • 跨域 iframe:验证码、支付表单使用 bjs click-xy 坐标点击绕过 DOM 边界
  • 大段内容输入bjs paste 优于 type,支持文件直读并自动验证

显著优点

1. 极致 Token 效率:单次交互 50-200 tokens,较内置浏览器工具(2,000-8,000 tokens)节省 3-10 倍,长流程场景差异可达 20-50 倍
2. 原生 Shadow DOM 支持:自动递归穿透 web components,Reddit、GitHub 等现代 SPA 开箱即用

3. 真实鼠标事件:使用 CDP Input.dispatchMouseEvent 而非 JS .click(),可靠触发 React/Vue/Angular 合成事件

4. 会话保持:继承已登录状态,无需重复认证

5. 零 OS 对话框文件上传:直接注入文件到隐藏 input 元素

潜在缺点与局限性

1. 依赖外部浏览器:需 Chrome/Chromium 以 --remote-debugging-port 启动,OpenClaw 环境外需手动配置
2. 无视觉理解能力:返回的是结构化文本而非截图分析,复杂布局仍需 screenshot 辅助

3. Canvas 内容不可遍历:Google Sheets 等 canvas 应用的内容区域无 DOM 元素,必须切换到 keys 模式

4. 坐标命令需人工计算:iframe 内元素定位依赖 iframe-rect 获取基准后再偏移,非完全自动化

5. 错误恢复需显式处理:虽智能命令内置回退,但焦点丢失、弹窗干扰等仍需 check/focus 手动修复

适合人群

  • 高频网页自动化开发者:需要以最低 token 成本完成多步骤浏览任务的 AI Agent 构建者
  • Shadow DOM 重度用户:经常操作 React/Vue/Angular 现代 SPA 或 Web Components 站点
  • 成本敏感型项目:LLM API 调用量大的生产环境,需严格控制上下文长度
  • 已有 CDP/Playwright 经验者:熟悉 Chrome DevTools Protocol 概念的用户上手更快

常规风险

| 风险类别 | 具体表现 | 缓解措施 |
|---------|---------|---------|
| **焦点漂移** | 自动完成弹窗、悬浮卡片窃取输入焦点 | 操作前 `check` 验证,异常时 `keys --escape` + `focus` 恢复 |
| **状态同步延迟** | AJAX 更新后元素索引过期 | 智能命令自动重索引,或手动重调 `elements` |
| **iframe 安全隔离** | 跨域内容无法 DOM 访问 | 预计算坐标使用 `click-xy`,接受定位精度 trade-off |
| **长文本截断** | `text`/`html` 有 8KB/10KB 上限 | 配合 `eval` 自定义提取逻辑或分页处理 |
| **浏览器崩溃** | CDP 连接断开无自动重连 | 流程中插入 `bjs tabs` 心跳检测,异常时重启浏览器 |

认证状态说明:安全认证报告显示为占位符,未执行实际安全扫描。建议在生产部署前进行依赖审计(npm install 的第三方包)和 CDP 端口访问控制检查。

tappi 内容

scripts文件夹
手动下载zip · 18.3 kB
browser.jstext/javascript
请选择文件