
简介
什么是 PinchTab ?
PinchTab 是一个高性能的浏览器自动化桥接器和多实例协调工具。它允许用户通过 HTTP API 直接控制 Chrome 浏览器,支持高效的网页操作及数据提取,适用于需要浏览器交互的 AI 代理和自动化脚本。无需复杂的配置和依赖,就能实现网页导航、截图、表单填充、数据提取等操作。
主要特点
- 高效的浏览器控制 : 支持命令行 (CLI)和 HTTP API 两种控制方式
- 无头/有头模式 : 可以后台运行,也可以显示浏览器窗口方便调试,,满足不同场合的需求
- 多实例支持 :可同时并行运行多个独立的 Chrome 进程,每个实例有隔离的 Profile,适合复杂的自动化需求
- 性能优化 : 文本提取仅需约 800 tokens/page,比截图方式节省 5-13 倍成本,更为经济有效
- 轻量级二进制包 : 仅需 12MB 二进制文件,无外部依赖,开箱即用
- 用户友好的 Web UI:设计现代,适配手机和桌面,提供良好的用户体验。
- 支持 ARM64:针对 Raspberry Pi 优化,自动检测并运行 Chromium
- 方便的安装和使用:提供简单的安装脚本和 Docker 支持,让用户能迅速部署
应用场景
- AI Agent 自动化 — 让 AI 助手自动浏览网页、自动化内容生成、回复社交媒体等
- 数据采集 — 高效提取网页文本内容,Token 消耗极低,,适合数据分析和市场调研
- 自动化测试 — 模拟用户操作,进行端到端测试,便于开发者快速实施测试脚本
- 网页截图/PDF — 生成网页截图或 PDF 文件
- 多用户模拟:在一个时间段内模拟多个用户对同一网站的操作,适合进行性能和负载测试。
PinchTab 提供了一种高效、灵活的方式来实现浏览器自动化,广泛应用于开发和测试,非常适合需要让 AI 控制浏览器的场景。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 pinchtab ,选择第一个 pinchtab/pinchtab,版本选择 latest。
本文写作时, latest 版本对应为 v0.7.6;

docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 pinchtab 和 子目录
mkdir -p /volume1/docker/pinchtab/data
# 进入 pinchtab 目录
cd /volume1/docker/pinchtab
# 修改目录权限
chmod a+rw data
# 运行容器
docker run -d \\
–restart unless-stopped \\
–name pinchtab \\
–shm-size=2gb \\
–security-opt seccomp=unconfined \\
-p 9867:9867 \\
-v $(pwd)/data:/data \\
-e PINCHTAB_BIND=0.0.0.0 \\
-e PINCHTAB_PORT=9867 \\
-e PINCHTAB_HEADLESS=true \\
-e PINCHTAB_STATE_DIR=/data \\
-e PINCHTAB_PROFILE_DIR=/data/chrome-profile \\
pinchtab/pinchtab:latest
参数说明
- 卷
| docker/pinchtab/data | /data | 存放 Chrome Profile 和缓存数据 |
- 端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| 9867 | 9867 |
网页仪表盘和 API 都在 9867 端口
- 环境
| PINCHTAB_BIND | 设为 0.0.0.0 允许外部访问 |
| PINCHTAB_PORT | 设为 9867 |
| PINCHTAB_HEADLESS | 设为 true 无头模式 |
| PINCHTAB_TOKEN | (可选)API 认证令牌,增强安全性 |
| PINCHTAB_STATE_DIR | 全局状态目录,存放 PinchTab 自身的运行时数据 |
| PINCHTAB_PROFILE_DIR | 浏览器用户数据目录 |
⚠️ 安全提示:如果暴露到公网,务必设置 PINCHTAB_TOKEN 进行认证!
【注意事项】:
- –shm-size=2gb:是 Chrome 稳定运行的关键参数,不可省略!不然容易崩溃
- –security-opt seccomp=unconfined:Docker 容器里跑 Chrome 必须放开 seccomp
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
services:
pinchtab:
image: pinchtab/pinchtab:latest
container_name: pinchtab
restart: unless–stopped
ports:
– "9867:9867"
volumes:
– ./data:/data
environment:
– PINCHTAB_BIND=0.0.0.0
– PINCHTAB_PORT=9867
– PINCHTAB_HEADLESS=true
– PINCHTAB_TOKEN=${PINCHTAB_TOKEN:–}
– PINCHTAB_STATE_DIR=/data
– PINCHTAB_PROFILE_DIR=/data/chrome–profile
# Shared memory is critical for Chrome stability
shm_size: "2gb"
# Required for Chrome to work in container
security_opt:
– seccomp:unconfined
# Limit resources
mem_limit: 2g
# cpus: "2.0" # 群晖可能不支持
然后通过 SSH 登录到您的群晖,执行下面的命令:
# 新建文件夹 pinchtab 和 子目录
mkdir -p /volume1/docker/pinchtab/data
# 进入 pinchtab 目录
cd /volume1/docker/pinchtab
# 修改目录权限
chmod a+rw data
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

运行
在浏览器中输入 http://群晖IP:9867/dashboard 就能看到 PinchTab 的管理面板

界面不是重点,因为 PinchTab 支持 CLI 命令,而且后面我们都是在 AI 中操作,执行的是类似下面👇这样的命令
# 打开一个页面
curl -X POST http://192.168.0.197:9867/navigate \\
-H "Content-Type: application/json" \\
-d '{"url": "https://laosu.tech"}'

虽然龙虾(OpenClaw)很火,但老苏没怎么折腾,我更喜欢基于 Docker 安装的 OpenCode,可玩性比较高,通过插件,是可以实现跟 OpenClaw 一样的功能的
文章传送门:开源的AI编码代理OpenCode
OpenCode
在 OpenCode 中输入
https://github.com/pinchtab/pinchtab
我用这个在服务器上安装了一个 docker,访问地址是 http://192.168.0.197:9867/dashboard
用 pinchtab 为 https://laosu.tech 首界面截一张图

OpenCode 会先学习怎么使用,任务完成之后

打开截图,应该是缺中文字体

但不影响 AI 获取内容

让 OpenCode 记住了这个软件,以后再想调用就简单了,只要说 “用 pinchtab 打开 xxx” 或 “截图 xxx 网站” 就行
OpenCode 的记忆功能,是老苏安装了记忆插件: https://github.com/csuwl/opencode-memory-plugin

常见问题快速对照
| 容器启动就退出 | 没加 –security-opt seccomp=unconfined | 必须加上 |
| 仪表盘打不开 / Connection refused | 端口没映射 | 检查 -p 9867:9867 |
| Chrome 崩溃 / OOM | 共享内存不够 | 加上 –shm-size=2g 或 shm_size: 2gb |
| 想多个独立浏览器实例 | 默认已支持多实例 | 用 instance_id 参数区分(看文档) |
| 希望加密码保护 API | — | 设置 PINCHTAB_TOKEN=xxx 环境变量 |
参考文档
pinchtab/docker-compose.yml at main · pinchtab/pinchtab 地址:https://github.com/pinchtab/pinchtab
PinchTab | PinchTab Docs 地址:https://pinchtab.com/docs/



