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 协议,相同的能力

开源

是 (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 支持

商业化 / 专业版 (即将推出)

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 — 随心所欲地使用。


-
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