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 协议,相同的能力 |
开源 | 是 (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 调试端口 |
| 自动检测 | 浏览器二进制文件路径 |
|
| 隔离的浏览器配置文件 |
| 自动 | 会话标识符 |
工作原理
┌─────────────┐ 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 支持 | 是 | 否 | 否 | 否 |
商业化 / 专业版 (即将推出)
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 倍 Token[x] Token 高效截图 — 元素级裁剪 (缩小 13 倍)、JPEG 质量控制、格式选择
[x] 视觉回退 (
describe) — 单次调用即可获取无障碍信息 + 截图 + 文本[x] 带标注截图 — 交互元素上的 @N 徽章覆盖层
[x] 自动等待 — 基于 MutationObserver,5 秒自动元素等待
[x] 批量命令 — 通过 stdin 管道传输 JSON 数组以进行多步自动化
[x] 视觉反馈系统 (持续的绿色光晕、光标、涟漪、按键显示)
[x] AI 控制警告提示 (当用户在自动化期间交互时发出红色警告)
[x] 多项目浏览器隔离 (每个项目拥有自己的端口 + 配置文件)
[x] 预检向导 (首次运行时自动安装依赖)
[x] 持久化 MCP 光晕 (在整个 AI 会话期间保持显示,类似于 Claude 的橙色光晕)
[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 内部的元素交互
[ ] 会话录制与回放 — 录制浏览器会话并确定性地回放它们
[ ] 隐身模式 (专业版) — 类人鼠标/打字行为、反指纹、验证码破解
[ ] cdpilot Cloud — 托管浏览器会话 API,REST + WebSocket MCP 端点
[ ] Chrome 扩展程序 — 无需 CLI 即可在任何浏览器中使用 cdpilot
[ ] 性能审计 — 通过 CDP Performance 域获取核心 Web 指标 (LCP, CLS, INP)
[ ] WCAG 无障碍审计 — 自动化的无障碍合规性报告
[ ] 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 — 随心所欲地使用。
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