컴퓨터 사용
CLI-JAW는 브라우저 DOM에는 CDP를, 데스크톱 상호작용에는 Computer Use를 사용합니다. Computer Use는 직원이 아닌 MCP 도구입니다.
두 가지 접근 방식
| 접근 방식 | 방법 | 적합한 용도 |
|---|---|---|
| CDP (Chrome DevTools Protocol) | src/browser/를 통한 브라우저 자동화 | 웹 페이지, 정밀한 DOM 상호작용 |
| Computer Use (CU) | jaw-computer-use MCP 또는 Codex 기본 플러그인으로 데스크톱 자동화 | 네이티브 앱, 데스크톱 UI 상호작용 |
CDP 브라우저 자동화
CLI-JAW는 CDP를 통해 Chrome을 실행하고 제어합니다:
# Start browser
jaw browser start
# Take a screenshot
jaw browser screenshot
# Take a DOM snapshot with ref attributes
jaw browser snapshot
# Click an element by ref
jaw browser click ref123
# Type text into an element
jaw browser type ref456 "Hello World" --submit
# Navigate to a URL
jaw browser navigate https://example.com
# Get page text
jaw browser text
비전 클릭 파이프라인
DOM ref 속성이나 직접 좌표 지정이 적합하지 않은 경우, 비전 클릭 파이프라인은 AI 비전을 사용하여 UI 요소를 찾고 클릭합니다:
jaw browser vision-click "Submit button" --provider codex
파이프라인 흐름: 스크린샷 촬영 → AI 비전으로 좌표 추출 → DPR 보정 → 클릭 → 검증.
$computer-use 요청에는 노출된 Computer Use 도구를 사용하며 CDP로 대체하지 않습니다. Jaw는 Codex 외 MCP 지원 CLI에 jaw-computer-use 서버(js 도구, Claude에서는 mcp__jaw-computer-use__js)를 등록합니다. Codex는 기본 플러그인을 사용합니다. 첫 도구 호출이 반환한 문서에서 cua.getApp(name), app.getAXState(), app.click(index|[x,y]) 등 지원 동작을 확인합니다.macOS TCC 권한
Computer Use가 포함된 ChatGPT 데스크톱 앱을 설치하고 연 뒤 jaw를 다시 시작합니다. macOS에서는 jaw 서비스를 실행한 프로세스/바이너리에 다른 앱 데이터 접근 권한(TCC App Data, ChatGPT Computer Use 컨테이너)이 필요할 수 있습니다. 개인정보 보호 및 보안의 정확한 패널 이름은 macOS 버전에 따라 다릅니다. 권한 없는 Terminal 실행 jaw는 첫 앱 호출에서 멈출 수 있습니다. 다른 TCC 권한은 다음으로 확인합니다:
# Check TCC permissions
jaw doctor --tcc
Jaw는 실행 권한 정책에 따라 앱 승인 요청에 답합니다. auto는 승인하고 safe는 거절하며 not approved로 보고합니다. 도구가 없으면 precondition failed: no Computer Use surface, 첫 앱 호출이 막히면 precondition failed: computer-use app access blocked로 보고합니다. Windows에도 Codex 데스크톱 플러그인 캐시가 필요합니다. Linux, WSL, Docker에는 호스트 Computer Use 표면이 없으며 DOM 작업에는 CDP를 사용할 수 있습니다.
Safari 팁
Safari 자동화를 사용하려면 Safari의 개발자 메뉴에서 "원격 자동화 허용"을 활성화하세요. 다만, CDP를 통한 Chrome이 권장되는 최적의 경로입니다.
브라우저 API 엔드포인트
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/browser/start | 브라우저 시작 |
| POST | /api/browser/stop | 브라우저 중지 |
| GET | /api/browser/status | 브라우저 상태 확인 |
| GET | /api/browser/snapshot | ref가 포함된 DOM 스냅샷 |
| POST | /api/browser/screenshot | 스크린샷 촬영 |
| POST | /api/browser/act | 클릭, 입력, 키 누르기, 호버 |
| POST | /api/browser/vision-click | 비전 기반 클릭 |
| POST | /api/browser/navigate | URL로 이동 |
런타임 진단
# Check browser runtime health
jaw browser status
# Doctor check for orphan processes
GET /api/browser/doctor
# Cleanup orphan runtimes
POST /api/browser/cleanup-runtimes