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만 사용하면 바로 시작할 수 있습니다.

왜 cdpilot인가요?

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

  • 제로 설정npx cdpilot launch로 격리된 브라우저 세션 시작

  • 제로 의존성 — Puppeteer, Playwright, Selenium 불필요. HTTP를 통한 순수 CDP 사용

  • 40개 이상의 명령어 — 탐색, 클릭, 입력, 스크린샷, 네트워크, 콘솔, 접근성 등 지원

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

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

  • 시각적 피드백 — 녹색 광원 오버레이, 커서 시각화, 클릭 파동, 키 입력 표시 등을 통해 자동화 중 상태를 알 수 있습니다

  • 다중 프로젝트 격리 — 각 프로젝트마다 브라우저 인스턴스와 포트가 자동으로 할당되어 충돌이 없습니다

  • AI 제어 경고 — 자동화 실행 중 마우스를 올리면 빨간색 토스트 알림이 표시됩니다

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

왜 Brave인가요?

cdpilot은 엔진으로 Brave Browser를 사용합니다. 이유는 다음과 같습니다:

기능

Brave

Chrome

중요한 이유

내장 광고 차단

Shields (기본)

확장 프로그램 필요

페이지 로딩 속도 향상, DOM 노이즈 감소

추적 차단

기본 활성화

수동 설정

디버깅을 위한 깔끔한 네트워크 로그

지문 방지

기본 제공

없음

자동화 세션의 개인정보 보호 강화

Chromium 기반

전체 CDP 지원

전체 CDP 지원

동일한 DevTools Protocol, 동일한 성능

오픈 소스

예 (MPL 2.0)

Chromium은 예, Chrome은 아니오

투명하고 검증 가능

리소스 사용량

메모리 적음

메모리 많음

작업과 병행하기에 더 적합

요약: Brave = Chrome의 성능 + 내장된 개인정보 보호 + 가벼움. 자동화에 최적입니다.

cdpilot은 Chrome 및 Chromium에서도 대체 브라우저로 작동합니다. Brave를 권장하지만 필수는 아닙니다.

설치

# 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

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) — 한 번의 호출로 a11y + 스크린샷 + 텍스트 제공

  • [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 및 shadow root 내부 요소와 상호작용

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

  • [ ] 스텔스 모드 (Pro) — 인간과 유사한 마우스/타이핑, 지문 방지, CAPTCHA 해결

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

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

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

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

  • [ ] 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 — 마음대로 사용하세요.


-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mehmetnadir/cdpilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server