Automation Skills

브라우저 자동화, 스크린샷 기반 상호작용, 요청 라우팅 기능을 제공하는 스킬입니다. 이 스킬들은 CLI-JAW가 CDP를 통해 Chrome을 제어하고, 스크린샷에서 UI 요소를 클릭하며, 웹 요청을 프로그래밍 방식으로 라우팅할 수 있게 합니다.

browser

Chrome DevTools Protocol(CDP)을 통한 Chrome 브라우저 제어 스킬입니다. 페이지 열기, 탐색, 참조 스냅샷 촬영, 요소 클릭, 텍스트 입력, 콘텐츠 추출, 스크린샷 캡처 기능을 제공합니다. cli-jaw 브라우저 서버가 실행 중이어야 합니다.

속성
Skill IDbrowser
카테고리Automation
프로토콜CDP (Chrome DevTools Protocol)
사전 요구사항cli-jaw 브라우저 서버 실행 중
트리거페이지 열기, 스크린샷, 클릭, 입력, 스크래핑, 탐색

기능

동작설명
Open page제어되는 Chrome 인스턴스에서 URL로 이동
Screenshot전체 페이지 또는 뷰포트 스크린샷을 PNG로 캡처
ClickCSS 선택자 또는 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 스킬은 CDP WebSocket 연결을 관리하는 cli-jaw 브라우저 서버를 통해 Chrome에 연결됩니다. 브라우저 명령을 사용하기 전에 서버를 먼저 시작해야 합니다.

# 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 요소 클릭browserCSS 선택자를 사용하면 더 빠르고 안정적
canvas 또는 iframe 내부 클릭vision-clickDOM 선택자로는 canvas 렌더링 콘텐츠에 접근 불가
데스크톱 앱 상호작용vision-click브라우저 외부에서는 DOM을 사용할 수 없으므로 유일한 방법
선택자가 불안정한 동적 UIvision-click시각적 식별이 취약한 선택자보다 더 견고함
빠른 반복 작업browserCDP 명령이 스크린샷 왕복보다 더 빠름
참고: vision-click은 비전 지원 모델이 필요하며, 스크린샷 캡처와 모델 추론으로 인해 동작당 추가 지연이 발생합니다. 속도가 중요한 경우 DOM에 접근 가능한 요소에는 browser 스킬을 사용하세요.

web-routing

프로그래밍 방식의 HTTP 요청 라우팅 및 인터셉션 스킬입니다. 웹 트래픽을 리디렉션, 재작성, 차단 또는 변환할 수 있는 요청 핸들러를 구성합니다. 로컬 개발 프록시, 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 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를 사용합니다.

# 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