cdpilot
cdpilot
ターミナルからブラウザを自動化。依存関係ゼロ。コマンド一つで完全制御。
クイックスタート
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 geolocationAIエージェントでの利用
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デバッグポート |
| 自動検出 | ブラウザバイナリのパス |
|
| 隔離されたブラウザプロファイル |
| 自動 | セッション識別子 |
仕組み
┌─────────────┐ 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 testPRを歓迎します!まずはCONTRIBUTING.mdをお読みください。
ライセンス
MIT — 自由にご利用ください。
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