关于 zenpilot
zenpilot 将 Claude Desktop 和 Claude Code 连接到由它启动并开启远程控制的 Zen 浏览器。它通过网站允许列表、只读模式和审计日志限制并记录浏览器操作;项目处于 Alpha 阶段,文档说明已在 macOS 和 Zen 1.23 上测试。
主要功能
- 01控制标签页并访问 URL
- 02读取页面、点击、输入、滚动和截图
- 03通过网站允许列表限制浏览
- 04启用只读浏览
- 05将操作记录到审计日志
- 06保留 Zen 的浏览器保护功能
适用场景
- 01让 Claude 完成允许访问的网站流程
- 02以只读模式检查页面
- 03查看记录的浏览器操作
MCP 相关
zenpilot 作为 MCP 服务连接 Claude Desktop 和 Claude Code,为 Claude 提供 Zen 浏览器控制能力。它将访问限制在允许的网站内,且不开放 Cookie、密码、下载或 JavaScript 执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
11收录的工具列表 · 更新于 今天
此工具无需参数。
详细介绍
让 Claude 使用你的 Zen 浏览器。兼容 Claude Desktop 和 Claude Code,有点像 Chrome 中的 Claude,只不过是为 Zen 打造的。
无需浏览器扩展。zenpilot 会开启远程控制并启动 Zen,然后直接与其通信。
Alpha。 仅在 macOS 和 Zen 1.23 上测试过。
安装
你需要一台安装了 Zen(位于 /Applications)的 Mac。
Claude Desktop: 从最新版本下载
zenpilot-<version>.mcpb 并打开即可。
Claude Code(或同时使用两者): 安装 uv 后,运行:
uv tool install zenpilot
zenpilot setup
设置过程会询问要使用哪个 Zen 配置文件,以及 Claude 可以访问哪些网站。随后,它会将 zenpilot 连接到 Claude Code(如果你安装了 Claude Desktop,也会连接到它),并打开 Zen。之后请重启 Claude Desktop。
使用方法
只需向 Claude 提出请求:“在 httpbin.org/forms/post 上为 Sam 订购一份加培根的大号披萨,然后提交表单”。
首次使用时,可能会出现一些弹窗。只有你能看到它们,Claude 看不到:
- 选择哪个配置文件?
zenpilot是一个全新的配置文件,未登录任何账户。如果你希望 Claude 使用已登录的网站,请选择自己的配置文件。 - 重新打开 Zen? 如果 Zen 已经打开但未启用远程控制,zenpilot 会询问是否重启。你的标签页会恢复。
- 允许访问此网站? Claude 只能使用你允许的网站。请选择 不允许、仅本次允许 或 始终允许。
按 Enter 始终会选择安全选项。
Claude 可以打开、切换和关闭标签页,访问 URL,读取页面,点击、输入、滚动和截屏。它无法访问 Cookie、密码或下载内容,也无法运行自己的 JavaScript。
安全须知
- 允许列表。 Claude 只能使用你已允许的网站。运行
zenpilot allow github.com可添加网站。 - 尽量使用
zenpilot配置文件。 它未登录任何账户。在你的主配置文件中,恶意页面可能会诱骗 Claude 在你的账户中执行操作,因此只允许信任的网站。 - 只读模式。 设置
read_only = true后,Claude 可以查看,但不能点击或输入。 - 日志。 Claude 的所有操作都会写入
~/.local/state/zenpilot/audit.jsonl。 - Zen 以这种方式运行时,远程控制会保持开启。 Mac 上的其他应用也可能连接到它,而且某些网站(如银行和 Cloudflare 验证页面)可能会认为你是机器人。使用完毕后,请退出 Zen 并正常打开。
zenpilot 还会阻止 Zen 关闭自身的防护功能(安全浏览、弹窗拦截器等),否则开启远程控制时这些功能会被关闭。
命令
| 命令 | 功能 |
|---|---|
zenpilot setup | 完成所有设置(见上文) |
zenpilot allow [site...] | 允许访问网站。使用 --remove 可移除网站。不指定网站则列出所有网站。 |
zenpilot launch | 开启远程控制并打开 Zen |
zenpilot doctor | 检查设置,并说明如何修复问题 |
设置
设置保存在 ~/.config/zenpilot/config.toml 中,修改后立即生效。
allowlist = ["localhost", "127.0.0.1"] # "example.com" covers its subdomains too
read_only = false # true: Claude can look but not click or type
profile = "zenpilot" # which Zen profile Claude uses
auto_launch = true # open Zen when Claude needs it
prompts = true # show the popups above
port = 9222
audit_log = "~/.local/state/zenpilot/audit.jsonl"
dangerously_allow_all_sites = false # skips the allowlist. Please don't.
实用信息
- 同一时间只能有一个 Claude 驱动 Zen。zenpilot 闲置 2 分钟后会释放控制权,因此 Claude Desktop 和 Claude Code 可以轮流使用。
- 可以隐藏 Zen,也可以将其放在其他窗口后面。它仍然可以正常工作。
- Zen 会按需加载恢复的标签页,因此只有在你打开旧标签页后,Claude 才能看到它。
- 遇到问题?运行
zenpilot doctor。如果 Zen 在崩溃后提示已有会话,请重启 Zen。
开发
git clone https://github.com/beSaif/zenpilot.git && cd zenpilot
uv sync && uv run zenpilot setup # points Claude at your clone
uv run pytest -m "not integration" # unit tests
uv run pytest # all tests, needs Zen running (zenpilot launch)
推送与 pyproject.toml 匹配的 v* 标签后,会发布到 PyPI,并创建包含 .mcpb 的 GitHub 发布版本。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
