본문으로 건너뛰기

PinchTab: AI 에이전트를 위한 고성능 브라우저 자동화 브리지

정석

PinchTab Banner

AI 에이전트에게 브라우저 제어를 맡겨본 적이 있는가. 스크린샷을 찍어서 보내면 토큰이 순식간에 증발하고, DOM을 그대로 긁어오면 불필요한 정보까지 잔뜩 들어온다. PinchTab은 이 문제를 해결한다.

12MB Go 바이너리 하나로 HTTP API를 통해 Chrome을 제어하며, 페이지당 약 800 토큰으로 필요한 정보만 추출할 수 있다. 스크린샷 기반 접근 대비 5-13배 저렴하다.


1. 왜 PinchTab인가

기존 방식의 문제

AI 에이전트가 웹을 이용할 때:

  1. 스크린샷 방식 - 이미지 토큰 비용이 비싸다. 한 페이지에 10,000+ 토큰 소모
  2. HTML 파싱 - 불필요한 태그, 스크립트, 스타일까지 전부 들어온다
  3. Playwright/Puppeteer - 무겁고, 에이전트가 사용하기에 복잡하다
  4. Selenium - 느리고, 설정이 번거롭다

PinchTab의 접근

pinchtab nav https://example.com
pinchtab snap -i -c
pinchtab text

2. 핵심 기능

2.1 토큰 효율적 텍스트 추출

PinchTab의 가장 큰 장점은 토큰 효율성이다.

방식토큰 소모 (페이지당)
스크린샷10,000+
HTML 그대로5,000-15,000
PinchTab text~800
pinchtab nav https://news.example.com/article
pinchtab text

핵심 콘텐츠만 깔끔하게 추출된다. 광고, 네비게이션, 푸터는 제외.

2.2 안정적 요소 참조 시스템

좌표 기반 클릭은 깨지기 쉽다. 레이아웃이 바뀌면 끝이다. PinchTab은 접근성 트리 기반 참조를 사용한다.

pinchtab snap -i

출력 예시:

[e5] 버튼 - "로그인"
[e6] 입력필드 - "이메일"
[e7] 입력필드 - "비밀번호"
[e8] 링크 - "비밀번호 찾기"

이 참조로 상호작용:

pinchtab fill e6 "user@example.com"
pinchtab fill e7 "mypassword"
pinchtab click e5

2.3 멀티 인스턴스

여러 Chrome 프로세스를 격리된 프로파일로 병렬 실행할 수 있다.

# 인스턴스 생성
curl -s -X POST http://localhost:9867/instances/launch \
  -H "Content-Type: application/json" \
  -d '{"name":"work","mode":"headless"}'

# 각 인스턴스는 독립적인 상태 유지
curl http://localhost:9867/instances

용도:

2.4 스텔스 모드

봇 탐지를 우회하는 스텔스 인젝션을 지원한다. 주요 기능:

2.5 프로파일 지속성

로그인 상태를 유지할 수 있다.

# 프로파일 지정하여 인스턴스 시작
curl -s -X POST http://localhost:9867/instances/start \
  -H "Content-Type: application/json" \
  -d '{"profileId":"alice","mode":"headless"}'

한 번 로그인하면 쿠키, 로컬 스토리지, 세션이 저장된다. 다음 실행 시 로그인 불필요.


3. 설치 및 시작

Docker (권장)

docker run -d -p 9867:9867 pinchtab/pinchtab

macOS / Linux

curl -fsSL https://pinchtab.com/install.sh | bash

npm

npm install -g pinchtab

시작하기

# 서버 시작
pinchtab

# 다른 터미널에서 제어
pinchtab nav https://pinchtab.com
pinchtab snap -i -c
pinchtab text

4. CLI 명령어

기본 명령어

명령설명
pinchtab서버 시작
pinchtab nav <URL>URL로 이동
pinchtab snap스냅샷 가져오기
pinchtab snap -i인터랙티브 요소만
pinchtab snap -c컴팩트 형식
pinchtab click <ref>요소 클릭
pinchtab fill <ref> <text>폼 채우기
pinchtab type <ref> <text>텍스트 입력
pinchtab press <key>키 입력
pinchtab text텍스트 추출
pinchtab ss스크린샷
pinchtab tabs탭 목록
pinchtab eval <js>JavaScript 실행

스냅샷 필터

pinchtab snap --filter interactive  # 클릭 가능한 요소만
pinchtab snap --filter visible      # 화면에 보이는 요소만
pinchtab snap --filter all          # 모든 요소

5. HTTP API

인스턴스 관리

# 인스턴스 생성
INST=$(curl -s -X POST http://localhost:9867/instances/launch \
  -H "Content-Type: application/json" \
  -d '{"name":"work","mode":"headless"}' | jq -r '.id')

# 탭 열기
TAB=$(curl -s -X POST http://localhost:9867/instances/$INST/tabs/open \
  -H "Content-Type: application/json" \
  -d '{"url":"https://pinchtab.com"}' | jq -r '.tabId')

# 스냅샷
curl "http://localhost:9867/tabs/$TAB/snapshot?filter=interactive"

# 클릭
curl -X POST "http://localhost:9867/tabs/$TAB/action" \
  -H "Content-Type: application/json" \
  -d '{"kind":"click","ref":"e5"}'

주요 엔드포인트

엔드포인트설명
POST /instances/launch인스턴스 생성
GET /instances인스턴스 목록
POST /instances/:id/tabs/open탭 열기
GET /tabs/:id/snapshot스냅샷
POST /tabs/:id/action액션 실행
GET /tabs/:id/text텍스트 추출

6. 아키텍처

구성 요소

런타임 모드

pinchtab          # 서버 모드 (대부분 이것만 필요)
pinchtab server   # 서버 모드 (명시적)
pinchtab bridge   # 브리지 모드 (고급 사용)

보안 기본값

PinchTab은 로컬 퍼스트 보안을 기본으로 한다:


7. 실제 사용 시나리오

웹 스크래핑

pinchtab nav https://news.example.com
pinchtab snap -i
pinchtab text > article.txt

로그인 자동화

pinchtab nav https://example.com/login
pinchtab snap -i
pinchtab fill e6 "user@example.com"
pinchtab fill e7 "password123"
pinchtab click e8

병렬 처리

# docker-compose.yml
services:
  pinchtab-1:
    image: pinchtab/pinchtab
    ports:
      - "9867:9867"
    environment:
      - BRIDGE_HEADLESS=true

  pinchtab-2:
    image: pinchtab/pinchtab
    ports:
      - "9868:9867"
    environment:
      - BRIDGE_HEADLESS=true

8. 다른 도구와의 비교

기능PinchTabPlaywrightSeleniumPuppeteer
토큰 효율성높음중간낮음중간
바이너리 크기12MB~100MB+~50MB+~100MB+
스텔스 모드지원미지원미지원미지원
멀티 인스턴스지원지원지원제한적
HTTP API기본래퍼 필요래퍼 필요래퍼 필요
프로파일 지속성기본수동 설정수동 설정수동 설정
ARM64 지원최적화지원지원지원

9. 언제 사용해야 하나

추천 상황

비추천 상황


10. SMCP 플러그인

PinchTab은 SMCP (Model Context Protocol) 플러그인을 제공한다. AI 에이전트가 MCP를 통해 PinchTab을 제어할 수 있다.

# 플러그인 설정
export PINCHTAB_MCP_ENDPOINT=http://localhost:9867

15개 도구 노출:

자세한 내용: plugins/README.md


마치며: 브라우저 자동화의 새로운 표준

PinchTab은 **“AI 에이전트를 위한 브라우저”**라는 명확한 목표를 가지고 설계되었다.

핵심 가치

  1. 토큰 효율성 - 800 토큰/페이지로 비용 절감
  2. 단순성 - 12MB 바이너리, pinchtab 하나로 시작
  3. 안정성 - 접근성 기반 참조, 좌표 불필요
  4. 확장성 - 멀티 인스턴스, 프로파일 격리
  5. 보안 - 로컬 퍼스트, IDPI 방어

빠른 시작

docker run -d -p 9867:9867 pinchtab/pinchtab
curl http://localhost:9867/health

AI 에이전트를 개발 중이라면, PinchTab을 시도해보라. 브라우저 제어가 한결 수월해질 것이다.


🔗 관련 정보

이전
Claude Code Review: 멀티 에이전트 기반 심층 코드 리뷰 시스템
다음
MiroFish: 미래를 시뮬레이션하는 집단지능 엔진