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で実行され、日常のブラウザとは分離されます。Cookie、パスワード、履歴が漏洩することはありません。

  • 任意のファイルアクセス不可 — MCPのスクリーンショットファイル名はサニタイズされ、スクリーンショットディレクトリ内に制限されます。パストラバーサルはブロックされます。

  • 安全なCSSセレクタquerySelectorに渡されるすべてのセレクタはJSONエスケープされ、インジェクションを防ぎます。

  • ネットワーク露出なし — CDPは127.0.0.1でのみリッスンします。デフォルトではリモート接続は不可能です。

  • 依存関係なし — npm/Pythonのランタイム依存関係がゼロであるため、サプライチェーン攻撃の表面積がゼロです。

脆弱性を見つけた場合は、公開Issueを開くのではなく、メンテナーに直接メールしてください。

ロードマップ

テストアサーションを内蔵した唯一のブラウザ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 + スクリーンショット + テキストを1回の呼び出しで取得

  • [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アクセシビリティ監査 — 自動化されたa11yコンプライアンスレポート

  • [ ] Claude Code Skillモード — MCPに加えて.claude/skills/スキルとして実行

アイデアがあれば、Issueを開くか、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