Skip to main content
Glama

cdpilot

터미널에서 바로 실행하는 제로 의존성 브라우저 자동화 도구. 하나의 명령어로 완벽하게 제어하세요.

npm version npm downloads License: MIT Node.js MCP Compatible cdpilot MCP server

빠른 시작

npx cdpilot launch    # Start browser with CDP
npx cdpilot go https://example.com
npx cdpilot shot      # Take screenshot

설정 파일도, 보일러플레이트 코드도 필요 없습니다. npx만 입력하고 바로 시작하세요.

Related MCP server: Scout

왜 cdpilot인가요?

AI 에이전트와 개발자에게는 즉시 작동하는 브라우저 제어 도구가 필요합니다:

  • 제로 설정npx cdpilot launch로 격리된 브라우저 세션을 즉시 시작합니다.

  • 제로 의존성 — Puppeteer, Playwright, Selenium이 필요 없습니다. HTTP를 통한 순수 CDP 방식입니다.

  • 40개 이상의 명령어 — 탐색, 클릭, 입력, 스크린샷, 네트워크, 콘솔, 접근성 등 다양한 기능을 지원합니다.

  • AI 에이전트 친화적 — Claude, GPT, Gemini 및 모든 LLM 도구 사용 워크플로우를 위해 설계되었습니다.

  • 격리된 세션 — 개인 브라우저는 그대로 유지됩니다. cdpilot은 자체 프로필에서 실행됩니다.

  • 시각적 피드백 — 녹색 글로우 오버레이, 커서 시각화, 클릭 리플, 키 입력 표시 등을 통해 자동화 중에도 상태를 확인할 수 있습니다.

  • 다중 프로젝트 격리 — 각 프로젝트는 자동으로 고유한 브라우저 인스턴스와 포트를 할당받아 충돌이 없습니다.

  • AI 제어 경고 — 자동화가 활성화된 상태에서 마우스를 올리면 빨간색 토스트 알림이 표시됩니다.

  • 개인정보 보호 우선 — 모든 작업이 로컬에서 실행됩니다. 데이터가 기기 밖으로 나가지 않습니다.

브라우저 선택 (워크로드 인식 자동 선택)

cdpilot은 작업에 가장 적합한 브라우저를 선택합니다. auto(기본값)는 확장 프로그램 워크로드와 플랫폼 안정성이라는 두 가지 축을 기준으로 정책을 결정합니다:

작업 유형

자동 선택 순서

등록된 확장 프로그램 있음 (ext-install)

vivaldi → brave → edge → chromium → chrome

확장 프로그램 없음 (순수 자동화)

chrome → vivaldi → edge → chromium → brave

언제든지 수동으로 변경할 수 있습니다:

cdpilot browser            # show current pick + reason
cdpilot browser vivaldi    # pin to Vivaldi
cdpilot browser auto       # restore smart default

왜 이렇게 구분하나요?

  • Chrome 147 이상은 압축 해제된 확장 프로그램에 대해 --load-extension을 조용히 무시합니다(오류나 경고 없음). 확인 결과 chrome://extensions에 항목이 0개로 표시됩니다.

  • Vivaldi, Brave, Edge, Chromium--load-extension을 정상적으로 지원합니다(테스트 완료).

  • macOS 26 (Tahoe) 환경의 Brave 1.89는 실행 후 약 7분이 지나면 결정론적으로 충돌합니다(ThreadPoolForegroundWorker에서 SIGTRAP 발생). cdpilot은 OS를 감지하여 수정된 Brave 버전이 출시될 때까지 자동으로 Brave의 우선순위를 낮춥니다.

각 브라우저는 고유한 격리 프로필(~/.cdpilot/.../profile-vivaldi 등)을 가지므로 브라우저를 전환해도 설정이 손상되지 않습니다.

설치

# Use directly (no install needed)
npx cdpilot <command>

# Or install globally
npm i -g cdpilot

요구 사항: Node.js 18+ 및 Brave Browser, Google Chrome, Chromium 중 하나.

최초 설정

npx cdpilot setup     # Auto-detect browser, create isolated profile
npx cdpilot launch    # Start browser with CDP enabled
npx cdpilot status    # Check connection

명령어

탐색 및 콘텐츠

cdpilot go <url>              # Navigate to URL
cdpilot content               # Get page text content
cdpilot html                  # Get page HTML
cdpilot shot [file]           # Take screenshot (PNG)
cdpilot pdf [file]            # Save page as PDF

상호작용

cdpilot click <selector>      # Click element
cdpilot type <selector> <text># Type into input
cdpilot fill <selector> <val> # Set input value (React-compatible)
cdpilot submit <form>         # Submit form
cdpilot hover <selector>      # Hover element
cdpilot keys <combo>          # Keyboard shortcut (ctrl+a, enter, etc.)
cdpilot scroll-to <selector>  # Scroll element into view
cdpilot drag <from> <to>      # Drag and drop

디버깅

cdpilot console [url]         # Capture console logs
cdpilot network [url]         # Monitor network requests
cdpilot debug [url]           # Full diagnostic (console+network+perf+shot)
cdpilot perf                  # Performance metrics
cdpilot eval <js>             # Execute JavaScript

탭 관리

cdpilot tabs                  # List open tabs
cdpilot new-tab [url]         # Open new tab
cdpilot switch-tab <id>       # Switch to tab
cdpilot close-tab [id]        # Close tab
cdpilot close                 # Close active tab

네트워크 제어

cdpilot throttle slow3g       # Simulate slow 3G
cdpilot throttle fast3g       # Simulate fast 3G
cdpilot throttle offline      # Go offline
cdpilot throttle off          # Back to normal
cdpilot proxy <url>           # Set proxy
cdpilot proxy off             # Remove proxy

요청 가로채기

cdpilot intercept block <pattern>                    # Block requests
cdpilot intercept mock <pattern> <json-file>         # Mock responses
cdpilot intercept headers <pattern> <header:value>   # Add headers
cdpilot intercept list                               # List active rules
cdpilot intercept clear                              # Clear all rules

기기 에뮬레이션

cdpilot emulate iphone        # iPhone emulation
cdpilot emulate ipad          # iPad emulation
cdpilot emulate android       # Android emulation
cdpilot emulate reset         # Back to desktop

지리적 위치

cdpilot geo istanbul          # Set location to Istanbul
cdpilot geo london            # Set location to London
cdpilot geo 41.01 28.97       # Custom coordinates
cdpilot geo off               # Remove override

접근성

cdpilot a11y                  # Full accessibility tree
cdpilot a11y summary          # Quick summary
cdpilot a11y find <role>      # Find elements by ARIA role

세션 관리

cdpilot session               # Current session info
cdpilot sessions              # List all sessions
cdpilot session-close [id]    # Close session

고급 기능

cdpilot cookies [domain]      # List cookies
cdpilot storage               # localStorage contents
cdpilot upload <sel> <file>   # Upload file to input
cdpilot multi-eval <js>       # Execute JS in all tabs
cdpilot headless [on|off]     # Toggle headless mode
cdpilot frame list            # List iframes
cdpilot dialog auto-accept    # Auto-accept dialogs
cdpilot permission grant geo  # Grant geolocation

스텔스 및 CAPTCHA

제로 의존성 안티 핑거프린팅 계층 — navigator.webdriver, chrome.runtime, 플러그인(올바른 PluginArray 상속), WebGL 벤더/렌더러, 권한, 하드웨어 동시성 및 Worker 생성자를 패치합니다. 페이지 스크립트가 실행되기 전에 Page.addScriptToEvaluateOnNewDocument를 통해 주입됩니다. 기본적으로 비활성화되어 있으며 선택적으로 활성화할 수 있습니다.

cdpilot stealth on            # enable fingerprint patches (opt-in)
cdpilot stealth off           # disable (default)
cdpilot stealth status        # show which patches are applied

cdpilot captcha-check         # JSON detection of Turnstile/hCaptcha/reCAPTCHA/
                              # DataDome/PerimeterX/Arkose/GeeTest. Exit 0/3
cdpilot captcha-wait [sec]    # block until user solves (interactive)
                              # or poll with JSON stream (non-interactive)

공개 봇 탐지 패널을 통해 검증됨:

  • bot.sannysoft.com: 24/24 통과 (WebDriver, Chrome 객체, PluginArray로서의 플러그인, WebGL, PHANTOM_, HEADCHR_, SELENIUM_DRIVER)

  • bot.incolumitas.com intoli: 6/6 OK — new-tests: 6/7 OK (실패 1건 = 순수 CDP 존재 여부, JS 패치 불가)

  • nowsecure.nl (Cloudflare 전체 챌린지): 통과

  • arh.antoinevastel.com/areyouheadless: "You are not Chrome headless"

신뢰성

cdpilot browser [name|auto]   # workload-aware browser selection
cdpilot health                # JSON: alive, port, tabs, browser, today's crashes

cdpilot health는 셸 감시 도구를 위해 설계되었습니다:

until cdpilot health >/dev/null; do cdpilot launch; sleep 2; done

macOS의 ~/Library/Logs/DiagnosticReports/에서 오늘의 Brave 충돌 횟수를 표시하여 자동화가 조용히 멈추기 전에 성능 저하를 감지합니다.

AI 에이전트와 함께 사용하기

cdpilot은 AI 에이전트가 도구로 호출할 수 있도록 설계되었습니다:

Claude Code (MCP)

{
  "mcpServers": {
    "cdpilot": {
      "command": "npx",
      "args": ["cdpilot", "mcp"]
    }
  }
}

모든 LLM (도구 사용)

{
  "name": "browser",
  "description": "Control a browser via CDP",
  "parameters": {
    "command": "go https://example.com"
  }
}

Python (subprocess)

import subprocess
result = subprocess.run(["npx", "cdpilot", "go", url], capture_output=True, text=True)
print(result.stdout)

환경 변수

변수

기본값

설명

CDP_PORT

9222

CDP 디버깅 포트

CHROME_BIN

자동 감지

브라우저 바이너리 경로

CDPILOT_PROFILE

~/.cdpilot/profile

격리된 브라우저 프로필

BROWSER_SESSION

자동

세션 식별자

작동 원리

┌─────────────┐     HTTP/WebSocket      ┌──────────────┐
│  cdpilot │ ◄──────────────────────► │ Brave/Chrome │
│   (CLI)     │    Chrome DevTools       │  (CDP mode)  │
└─────────────┘     Protocol             └──────────────┘
       │                                        │
       │  Zero dependencies                     │  Isolated profile
       │  Pure HTTP + WebSocket                 │  Separate from your
       │  ~2500 lines, single file              │  personal browser
       └────────────────────────────────────────┘

Puppeteer도, Playwright도, Selenium도 없습니다. 오직 직접적인 CDP 통신만 사용합니다.

비교

기능

cdpilot

Puppeteer

Playwright

Selenium

설치 크기

~50KB

400MB+

200MB+

100MB+

의존성

0

50+

30+

Java + 드라이버

설정 시간

즉시

수 분

수 분

복잡함

AI 에이전트 준비

수동

수동

수동

브라우저 다운로드

아니오

예 (Chromium)

예 (3개 브라우저)

아니오

CLI 우선

아니오 (라이브러리)

아니오 (라이브러리)

아니오

MCP 지원

아니오

아니오

아니오

수익화 / Pro (출시 예정)

cdpilot CLI는 항상 무료이자 오픈 소스(MIT)로 유지됩니다.

향후 유료 서비스:

  • cdpilot cloud — 원격 브라우저 인스턴스, 로컬 브라우저 불필요

  • 팀 대시보드 — 공유 세션, 감사 로그, 사용량 분석

  • 우선 지원 — 엔터프라이즈 통합을 위한 직접 지원

보안

  • 격리된 브라우저 프로필 — cdpilot은 일상적인 브라우저와 분리된 ~/.cdpilot/profile에서 실행됩니다. 쿠키, 비밀번호, 기록이 노출되지 않습니다.

  • 임의 파일 접근 불가 — MCP 스크린샷 파일명은 살균 처리되며 스크린샷 디렉토리로 제한됩니다. 경로 탐색 공격이 차단됩니다.

  • 안전한 CSS 선택자querySelector에 전달되는 모든 선택자는 주입 공격을 방지하기 위해 JSON 이스케이프 처리됩니다.

  • 네트워크 노출 없음 — CDP는 127.0.0.1에서만 수신 대기합니다. 기본적으로 원격 연결은 불가능합니다.

  • 의존성 없음 — npm/Python 런타임 의존성이 없으므로 공급망 공격 표면이 제로입니다.

취약점을 발견하셨나요? 공개 이슈를 여는 대신 관리자에게 직접 이메일을 보내주세요.

로드맵

테스트 어설션이 내장된 유일한 브라우저 MCP입니다. 지금까지 구현된 기능과 향후 계획은 다음과 같습니다:

구현 완료

  • [x] 60개 이상의 CLI 명령어 (탐색, 클릭, 입력, 스크린샷, PDF, 콘솔, 네트워크...)

  • [x] AI 에이전트 통합을 위한 MCP 서버 (Claude Code, Cursor 등)

  • [x] 10개의 내장 테스트 어설션 — assert, assert-url, assert-title, assert-count, assert-value, assert-attr, assert-visible/hidden, wait-for, check (배치), screenshot-diff

  • [x] 접근성 트리 스냅샷 (a11y-snapshot) — @ref 참조가 포함된 구조화된 데이터, 스크린샷보다 토큰 500배 절감

  • [x] 토큰 효율적인 스크린샷 — 요소 단위 크롭(13배 작음), JPEG 품질 제어, 형식 선택

  • [x] 비전 폴백 (describe) — 한 번의 호출로 접근성 + 스크린샷 + 텍스트 제공

  • [x] 주석이 달린 스크린샷 — 상호작용 요소에 @N 배지 오버레이

  • [x] 자동 대기 — MutationObserver 기반, 5초 자동 요소 대기

  • [x] 배치 명령어 — 다단계 자동화를 위해 stdin을 통해 JSON 배열 파이프라인 지원

  • [x] 시각적 피드백 시스템 (지속적인 녹색 글로우, 커서, 리플, 키 입력 표시)

  • [x] AI 제어 경고 토스트 (자동화 중 사용자 상호작용 시 빨간색 경고)

  • [x] 다중 프로젝트 브라우저 격리 (각 프로젝트별 포트 + 프로필)

  • [x] 사전 실행 마법사 (첫 실행 시 의존성 자동 설치)

  • [x] 지속적인 MCP 글로우 (Claude의 주황색 글로우처럼 AI 세션 동안 유지)

  • [x] DevExtension 시스템 (브라우저 스토어 없이 네이티브 JS 주입)

  • [x] 스마트 명령어smart-click, smart-fill, smart-select — 보이는 텍스트로 상호작용, CSS 선택자 불필요, LLM 불필요

  • [x] 데이터 추출 (extract) — 텍스트, JSON 또는 목록 형식의 구조화된 DOM 데이터

  • [x] 페이지 관찰 (observe) — 사용 가능한 작업이 포함된 모든 상호작용 요소 나열

  • [x] 스크립트 실행기 (run) — 성공/실패 보고와 함께 .cdp 스크립트 파일 실행

출시 예정

  • [ ] iframe 및 Shadow DOM 지원 — iframe 및 섀도우 루트 내부 요소와 상호작용

  • [ ] 세션 기록 및 재생 — 브라우저 세션을 기록하고 결정론적으로 재생

  • [ ] 스텔스 모드 (Pro) — 인간과 유사한 마우스/타이핑, 안티 핑거프린팅, CAPTCHA 해결

  • [ ] cdpilot Cloud — 호스팅된 브라우저 세션 API, REST + WebSocket MCP 엔드포인트

  • [ ] Chrome 확장 프로그램 — CLI 없이 모든 브라우저에서 cdpilot 사용

  • [ ] 성능 감사 — CDP Performance 도메인을 통한 Core Web Vitals (LCP, CLS, INP) 측정

  • [ ] WCAG 접근성 감사 — 자동화된 접근성 준수 보고

  • [ ] Claude Code Skill 모드 — MCP 외에도 .claude/skills/ 스킬로 실행

아이디어가 있으신가요? 이슈를 열거나 PR을 제출해주세요!

기여

git clone https://github.com/mehmetnadir/cdpilot.git
cd cdpilot
npm install
npm test

PR을 환영합니다! 먼저 CONTRIBUTING.md를 읽어주세요.

라이선스

MIT — 마음대로 사용하세요.


Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Reliable, scalable browser infrastructure for AI agents. Route, pool, and failover across any browser provider. 8 built-in browser tools using raw Chrome CDP - navigate, screenshot, snapshot, interact, evaluate. Zero-config with auto Chrome detection & concurrent sessions support
    518 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    single-binary MCP server that gives AI agents a browser. 66 tools for navigation, form filling, data extraction, screenshots, and DOM diffing — built on pure Chrome DevTools Protocol.
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lightweight browser automation server for AI agents, enabling fast (10-25ms per action), structured observations and semantic selectors with zero token overhead.
    6
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to scrape web pages, fill forms, take screenshots, and extract structured data via Chrome DevTools Protocol with zero external dependencies.
    MIT