Automation Skills

浏览器自动化、基于截图的交互以及请求路由。这些技能赋予 CLI-JAW 通过 CDP 控制 Chrome、从截图中点击 UI 元素以及以编程方式路由 Web 请求的能力。

browser

通过 Chrome DevTools Protocol (CDP) 控制 Chrome 浏览器。可以打开页面、导航、拍摄参考快照、点击元素、输入文本、提取内容以及捕获截图。需要 cli-jaw 浏览器服务器处于运行状态。

属性
Skill IDbrowser
类别Automation
协议CDP (Chrome DevTools Protocol)
前置条件cli-jaw 浏览器服务器正在运行
触发方式打开页面、截图、点击、输入、抓取、导航

功能

操作说明
Open page在受控的 Chrome 实例中导航到指定 URL
Screenshot捕获整页或视口截图,格式为 PNG
Click通过 CSS 选择器或 XPath 点击 DOM 元素
Type在输入框和文本区域中输入文本
Extract读取元素的文本内容、属性或 innerHTML
Evaluate在页面上下文中执行任意 JavaScript
Wait等待选择器、导航或网络空闲
Ref snapshot拍摄当前 DOM 状态的参考快照,用于比对差异

使用示例

# Open a page and take a screenshot
/browser open https://example.com
/browser screenshot

# Click a button by selector
/browser click "#submit-btn"

# Type into an input field
/browser type "#search-input" "CLI-JAW documentation"

# Extract text content from an element
/browser extract ".main-content" text

# Execute JavaScript in the page
/browser eval "document.title"
自然语言触发:
"https://example.com 열어줘" -- 在浏览器中打开该 URL
"이 페이지 스크래핑해줘" -- 抓取并提取当前页面的内容
"스크린샷 찍어줘" -- 捕获当前视口的截图
"로그인 페이지에서 이메일 입력해줘" -- 在登录页面的邮箱字段中输入内容

CDP 连接

browser 技能通过 cli-jaw 浏览器服务器连接到 Chrome,该服务器管理 CDP WebSocket 连接。使用浏览器命令前必须先启动服务器。

# Start the browser server (runs on a dedicated port)
jaw browser serve

# The skill auto-connects when invoked
# Connection is reused across commands in the same session
注意:浏览器服务器管理单个 Chrome 实例。通过 CDP 目标(标签页)支持并发页面操作,但同一时间只有一个浏览器实例处于活动状态。

vision-click

基于截图的 UI 交互,使用视觉模型。该技能不依赖 DOM 选择器,而是通过截图识别 UI 元素,并在正确的坐标位置进行点击。适用于屏幕上可见的任何应用程序——不仅限于浏览器。

属性
Skill IDvision-click
类别Automation
方法截图分析 + 坐标映射
模型具备视觉能力的 LLM(Claude、GPT-4V)
适用范围任何屏幕上的 UI(浏览器、桌面应用、终端)

工作原理

  1. 捕获 -- 对当前屏幕或指定区域进行截图
  2. 分析 -- 将截图发送给视觉模型以识别目标元素
  3. 定位 -- 模型返回要点击的元素的像素坐标
  4. 执行 -- 在识别到的坐标位置执行点击(或其他操作)
操作说明
Click点击视觉识别到的 UI 元素
Double-click双击目标元素
Right-click右键点击目标元素
Hover将光标移动到目标元素上方,但不点击
Describe返回屏幕上可见内容的描述

使用示例

# Click a button described by its visual label
/vision-click "the blue Submit button"

# Click on a specific icon
/vision-click "the gear icon in the top-right corner"

# Right-click on a file in Finder
/vision-click --right "the README.md file"

# Describe what is currently visible
/vision-click --describe
自然语言触发:
"이 버튼 클릭해줘" -- 使用视觉识别点击所描述的按钮
"화면에서 저장 버튼 찾아서 눌러줘" -- 在屏幕上找到并点击保存按钮
"지금 화면에 뭐가 보여?" -- 描述当前屏幕上的内容
"오른쪽 위에 있는 설정 아이콘 클릭해줘" -- 点击右上角的设置图标

何时使用 vision-click 与 browser

场景推荐技能原因
点击已知的 DOM 元素browser使用 CSS 选择器更快且更可靠
点击 canvas 或 iframe 内的元素vision-clickDOM 选择器无法触及 canvas 渲染的内容
桌面应用交互vision-click唯一选择——浏览器之外没有 DOM 可用
选择器不稳定的动态 UIvision-click视觉识别比脆弱的选择器更健壮
高速重复操作browserCDP 命令比截图往返更快
注意:vision-click 需要具备视觉能力的模型,并且由于截图捕获和模型推理,每次操作会产生额外的延迟。当速度很重要时,对于可通过 DOM 访问的元素,请使用 browser 技能。

web-routing

编程式 HTTP 请求路由和拦截。配置请求处理程序,可以重定向、重写、阻止或转换 Web 流量。适用于本地开发代理、API 模拟和流量整形。

属性
Skill IDweb-routing
类别Automation
层级HTTP 请求/响应拦截
适用范围URL 模式匹配、请求头操作、请求体转换

路由规则

规则类型说明示例
Redirect将匹配的请求发送到不同的 URL/api/* -> http://localhost:8080/api/*
Rewrite修改请求路径而不进行重定向/v2/* -> /v1/*
Block对匹配的请求返回错误阻止所有 *.tracking.com 请求
Mock返回静态或动态响应GET /api/users 返回 JSON 固定数据
Transform修改请求或响应的头部/主体为所有 API 调用添加 Authorization

使用示例

# Redirect API calls to local dev server
/web-routing add /api/* -> http://localhost:8080/api/*

# Mock a specific endpoint with a JSON response
/web-routing mock GET /api/users '[{"id":1,"name":"Test"}]'

# Block tracking requests
/web-routing block *.analytics.com

# Add auth header to all outgoing API requests
/web-routing transform /api/* --header "Authorization: Bearer $TOKEN"

# List active routing rules
/web-routing list

# Remove a routing rule
/web-routing remove /api/*
自然语言触发:
"API 요청을 로컬 서버로 돌려줘" -- 将 API 请求重定向到 localhost
"이 엔드포인트 목업 데이터로 응답해줘" -- 使用固定数据模拟端点响应
"트래킹 스크립트 차단해줘" -- 阻止跟踪域的请求
"모든 API 요청에 인증 헤더 추가해줘" -- 为 API 流量添加认证头

模式匹配

路由模式支持 glob 语法,可以基于路径、主机、方法和头部进行匹配。

# Glob patterns
/api/*                    # matches /api/users, /api/posts/1, etc.
/api/users/:id            # named parameter capture
*.example.com             # subdomain wildcard

# Method-specific routes
GET /api/users            # only match GET requests
POST /api/users           # only match POST requests

# Header-based matching
/api/* [Content-Type: application/json]   # match by header
注意:路由规则按特异性顺序进行评估。更具体的模式优先于通配符。规则在会话期间持续有效,除非被明确移除。

技能对比

根据您的任务选择合适的自动化技能。

特性browservision-clickweb-routing
目标Chrome DOM任何屏幕上的 UIHTTP 流量
协议CDP截图 + 视觉模型HTTP 拦截
速度较慢(模型推理)
选择器类型CSS / XPath视觉描述URL 模式
适用范围仅限浏览器浏览器 + 桌面应用网络层
前置条件浏览器服务器正在运行可访问视觉模型

常见模式

抓取与提取

browser 技能与内容提取相结合,从网页中获取结构化数据。

# Open the target page
/browser open https://news.example.com

# Extract all article titles
/browser eval "Array.from(document.querySelectorAll('h2.title')).map(el => el.textContent)"

# Take a screenshot for reference
/browser screenshot

表单自动化

通过链式输入和点击命令来填写并提交表单。

# Navigate to login page
/browser open https://app.example.com/login

# Fill in credentials
/browser type "#email" "user@example.com"
/browser type "#password" "secretpassword"

# Submit the form
/browser click "#login-btn"

# Wait for navigation and verify
/browser wait "nav.dashboard"
/browser screenshot

桌面应用 + 浏览器组合

在混合工作流中,使用 vision-click 操作桌面应用元素,使用 browser 操作 Web 内容。

# Click "Open in Browser" in a desktop app
/vision-click "the Open in Browser button"

# Switch to browser skill for DOM-level control
/browser wait ".main-content"
/browser extract ".main-content" text