PinchTab
为 AI 代理提供本地 Chrome 控制面的轻量 HTTP 浏览器自动化桥接服务。
- Star 数
- ★ 10k
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- Go
- FA 评分
- 51/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- AI 代理开发者:希望代理在本地以低 token 成本浏览网页、抓取结构化内容并点击表单,而不直接暴露浏览器给模型。
- 不适合
- 需要将浏览器控制服务直接暴露到公网的团队
- 期望多租户隔离或未经安全加固的云部署的用户
- 只能在 Windows 上运行且依赖 daemon 工作流的团队
- 源码审查
- 51/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
PinchTab 是一个用 Go 编写的独立 HTTP 服务器,把本地 Chrome 变成 AI 代理可直接调用的浏览器控制面。它由 server、实例(每个对应一个 Chrome 进程)、profile(保存 cookies、历史和本地存储)以及轻量 bridge 运行时组成,支持多实例并行、无头/有头模式、外部 Chrome attach 与可选的 CloakBrowser 隐身支持。默认监听 127.0.0.1:9867,以用户级 daemon 方式在后台常驻,提供 CLI 与 HTTP API 两种调用方式,并通过活动元素引用(如 e5)实现高 token 效率的页面快照与文本提取。它还内置站点审计与版本视觉对比命令,可用于 CI 门禁。默认安全姿态为本地优先:敏感端点族与 attach 默认关闭,IDPI 仅允许本地网站白名单,远程或分布式部署需要操作者自行负责令牌、网络边界与 TLS。
PinchTab 以 server-first 模型运行:pinchtab daemon install 或 pinchtab server 启动控制面,服务器管理 profile 与 Chrome 实例,每个实例背后由 pinchtab bridge 管理单个浏览器进程。代理可通过 CLI(pinchtab nav、pinchtab snap -i -c、pinchtab click e5、pinchtab text、pinchtab fill、pinchtab press)或 HTTP API 操作:先 POST /profiles 创建 profile,再 POST /instances/start 启动无头/有头实例,然后 POST /instances/{id}/tabs/open 打开标签页,GET /tabs/{tabId}/snapshot?filter=interactive 获取快照,POST /tabs/{tabId}/action 执行点击等动作。此外 pinchtab audit 可输出 report.json 与截图并覆盖控制台错误、可访问性评分、Core Web Vitals 与安全发现,pinchtab compare 支持 --fail-on-diff 作为发布前门禁。
- AI 代理开发者:希望代理在本地以低 token 成本浏览网页、抓取结构化内容并点击表单,而不直接暴露浏览器给模型。
- 需要登录态自动化的团队:为工作账号创建带认证信息的 profile,让代理自动选择正确 profile 下载周报。
- QA 与测试团队:在 CI 中用
pinchtab audit检查站点截图、控制台错误与 Core Web Vitals,并用pinchtab compare --fail-on-diff阻断有视觉回归的发布。 - 多任务爬取场景:通过多实例并行运行隔离的 Chrome 进程,为不同 profile 分配不同浏览任务。
- Raspberry Pi 或 ARM64 设备用户:利用 ARM64 优化和自动 Chromium 检测,在边缘设备上运行本地浏览器控制面。
- 需要更强隔离的本地自动化:用 Docker 容器运行 PinchTab,在沙箱中执行代理浏览任务。
如何安装或部署这个 Agent?
macOS/Linux 可用安装脚本或 Homebrew,也可通过 npm 全局安装:
curl -fsSL https://pinchtab.com/install.sh | bashbrew install pinchtab/tap/pinchtabnpm install -g pinchtabDocker 方式需要本机已有 Chrome/Chromium 或使用镜像内的浏览器:
docker run -d \
--name pinchtab \
-p 127.0.0.1:9867:9867 \
-v pinchtab-data:/data \
--shm-size=2g \
pinchtab/pinchtab从源码构建需要 Go 1.26+:
git clone https://github.com/pinchtab/pinchtab.git
cd pinchtab
./dev doctor
go build ./cmd/pinchtab如何使用这个 Agent?
推荐先安装并启动用户级 daemon,再让代理指向 http://localhost:9867:
pinchtab daemon install
pinchtab daemon首次可直接用 CLI 驱动浏览器:
pinchtab nav https://pinchtab.com --snap
pinchtab snap -i -c
pinchtab click e5
pinchtab textHTTP API 需要服务端令牌,每个请求都要带上:
export PINCHTAB_TOKEN=$(pinchtab config token --stdout)
PROF=$(curl -s -X POST http://localhost:9867/profiles \
-H "Authorization: Bearer $PINCHTAB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"work"}' | jq -r '.id')
INST=$(curl -s -X POST http://localhost:9867/instances/start \
-H "Authorization: Bearer $PINCHTAB_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"profileId\":\"$PROF\",\"mode\":\"headless\"}" | jq -r '.id')
TAB=$(curl -s -X POST http://localhost:9867/instances/$INST/tabs/open \
-H "Authorization: Bearer $PINCHTAB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://pinchtab.com"}' | jq -r '.tabId')
curl -H "Authorization: Bearer $PINCHTAB_TOKEN" "http://localhost:9867/tabs/$TAB/snapshot?filter=interactive"站点审计与视觉对比:
pinchtab audit https://example.com --output-dir ./audit
pinchtab compare https://example.com https://staging.example.com --fail-on-diff这个 Agent 有哪些优点和局限?
- 单文件约 30MB 的 Go 二进制,无运行时依赖,直接驱动本地 Chrome/Chromium,部署边界清晰。
- token 效率显著:README 称文本提取约 800 tokens/页,基准测试显示在扩展工作负载下总成本比 agent-browser 低约 19.6%–20.3%。
- 默认本地优先安全姿态:绑定 127.0.0.1,敏感端点族与 attach 默认关闭,IDPI 仅放行本地网站白名单。
- 多实例与 profile 隔离:多个 Chrome 进程可并行运行,各自拥有独立 cookies 与本地存储。
- 内置站点审计与视觉对比,
--fail-on-diff可直接嵌入 CI 门禁。 - 支持 ARM64 与 Raspberry Pi,自动检测 Chromium,并提供
pinchtab doctor诊断。
- 只针对本地单用户设计,dashboard、HTTP API 与 MCP 服务均被明确定位为不可暴露公网的特权控制面。
- Windows 支持有限且为 best-effort,daemon 工作流不被推荐,需改用
pinchtab server或pinchtab bridge。 - 默认 IDPI 仅允许本地网站,需要额外配置才能访问公网,扩大浏览范围被视为降低安全性的选择。
- macOS 上直接驱动日常 Chrome 无头运行可能阻止其打开普通窗口,需改用 Chrome for Testing 或单独构建。
- 可选隐身依赖用户自备 CloakBrowser 二进制,发布产物不包含,需额外采购或部署。
- 远程/分布式部署需自行处理令牌、网络边界、TLS 与反向代理,文档将其视为高级操作者场景。
这个 Agent 与同类方案有什么区别?
README 中与 agent-browser 做了端到端代理循环 token 成本基准对比:在 Basic Haiku(10 步)场景下 PinchTab 成本低 9.5%、请求少 23.0%、token 少 17.9%;Extended Haiku(24 步)成本低 19.6%;Extended Sonnet(24 步)成本低 20.3%。README 未提供其他竞品对比。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| PinchTab 当前 | 51 · 缺口较多 | 自托管服务免费 | ★ 10k | 4 天前 | Go | — |
| Steel Browser | 29 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 7.8k | 1 天前 | TypeScript | — |
| browser-control | 72 · 存在缺口 | 命令行工具免费 | ★ 3.2k | 1 个月前 | Rust | — |
| Kuri | 71 · 存在缺口 | 命令行工具免费 | ★ 366 | 11 天前 | Zig | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示默认绑定 127.0.0.1、敏感端点族(evaluate/macro/cookies/upload/memory 等)默认关闭、attach 默认禁用、IDPI 默认开启,最小权限设计较扎实(2)。但用户确认仅停留在文档层面的操作建议('Confirm with the user before account-changing actions'),代码/API 层无强制确认门,故 user_confirmation 仅 1。数据流方面文档明确说明无遥测、本地优先、token 与 cookie 流程,透明度尚可(2);敏感数据处理有 stateEncryptionKey、token 掩码、凭据不回传 UI 等设计(2)。依赖安全仅见 go.mod 与 npm 测试,无 SBOM/审计/漏洞扫描证据,且含多个 pinchtab 自研私有模块,故 1。外部效应方面浏览器自动化本身可产生下载/上传/表单提交等副作用,虽有默认关闭但缺少回滚机制说明(1)。回滚仅见 daemon stop/uninstall 与 config 重置,缺少对已执行浏览器动作的撤销(1)。来源归属有 LICENSE 与作者署名,但发布者身份未经验证、无签名/校验和说明(1)。
文档内部一致性较好:README 与 security.md、config.md 对默认值描述基本吻合(2)。依赖可用性方面 go.mod 引用多个 pinchtab 私有模块与未来时间戳的伪版本,静态无法确认可获取性(1)。失败信息在文档中给出具体错误码(evaluate_disabled、tab_unfreeze_failed、memory_snapshot_too_large 等),较清晰(2)。
受众与场景覆盖本地单用户、Docker、分布式、QA 等,描述充分(2)。能力边界明确区分 server/bridge/attach 与敏感端点族(2)。触发精度方面 Agent 技能与 MCP 集成仅提及安装,缺少触发条件与选择逻辑的细节(1)。环境适配覆盖 macOS/Linux/Windows/ARM64 并说明 Windows 为 best-effort(2)。
信息架构有 README、docs 目录、config 参考,结构清晰(2)。安装说明覆盖 curl/brew/npm/docker/daemon,充分(2)。命名稳定性方面存在多处弃用与重命名(tabEvictionPolicy→tabPolicy.eviction、browser.provider 移除、browsers.config 退役),迁移负担明显(1)。示例与 FAQ 较丰富(2)。已知限制有专门章节(Windows、macOS Chrome、缓存 IP 检查等)(2)。许可证为 MIT 且文件完整(2)。版本与变更日志仅见 SECURITY.md 的支持版本表,无 CHANGELOG(1)。维护责任方面有 SECURITY.md 联系路径,但发布者未验证、无治理说明(1)。
输出可用性方面提供 CLI、HTTP API、结构化快照与文本提取,输出形态明确(2)。边际价值在于 token 效率与多实例编排,相对通用浏览器自动化有差异化(2)。成本收益方面基准数据仅 README 自述、无独立复现,且需本地 Chrome 与守护进程,收益证据偏弱(1)。
声明可追溯性方面多数声明指向 docs 路径,但基准与性能数字缺少可复现脚本引用(1)。交叉佐证方面 README 与 security.md 在默认值上互相印证,但基准仅单一来源(1)。事实与推断分离方面文档混用营销性表述('5-13x cheaper')与事实描述,未明确标注测量条件边界(1)。
- 发布者身份未经验证,安装脚本通过 curl | bash 从远程获取,静态审查无法确认其内容与完整性。
- 浏览器自动化天然具备下载、上传、表单提交、cookie 读写等外部副作用,默认关闭但一旦开启缺少动作级回滚。
- go.mod 引用多个 pinchtab 私有模块与未来时间戳伪版本,依赖可获取性与供应链完整性无法静态确认。
- 基准性能数据为项目自述,缺少可复现脚本与独立佐证,不应作为选型唯一依据。
- 存在多处配置项弃用与重命名,升级时需注意迁移成本。
常见问题
使用 PinchTab 需要付费吗?
默认能访问公网网站吗?
把 PinchTab 部署到远程服务器安全吗?
在 Windows 上怎么用?
pinchtab server 或 pinchtab bridge。哪些场景能直接用 --fail-on-diff 做 CI 门禁?
pinchtab compare 支持 --fail-on-diff,可在两个站点版本之间做视觉对比并在差异存在时使命令失败,适合接入发布前流水线。