Showcase
Browser for your agents
Start the server and one instance first:
pinchtabpinchtab pinchtab instance startcurl -s -X POST http://127.0.0.1:9867/instances/start \ -H "Content-Type: application/json" \ -d '{"mode":"headless"}' | jq .
Response
{
"id": "inst_0a89a5bb",
"profileId": "prof_278be873",
"profileName": "instance-1741400000000000000",
"port": "9868",
"headless": true,
"status": "starting"
} Starting an instance may be optional, depending on strategy/config.
Navigate
pinchtab nav https://github.com/pinchtab/pinchtabcurl -s -X POST http://127.0.0.1:9867/navigate \ -H "Content-Type: application/json" \ -d '{"url":"https://github.com/pinchtab/pinchtab"}' | jq .
Response
{
"tabId": "CDP_TARGET_ID",
"title": "GitHub - pinchtab/pinchtab",
"url": "https://github.com/pinchtab/pinchtab"
} Snapshot
pinchtab snap -i -ccurl -s "http://127.0.0.1:9867/snapshot?filter=interactive" | jq . Response
{
"nodes": [
{
"ref": "e0",
"role": "link",
"name": "Skip to content"
},
{
"ref": "e1",
"role": "link",
"name": "GitHub Homepage"
},
{
"ref": "e14",
"role": "button",
"name": "Search or jump to…"
}
]
} Extract Text
pinchtab textcurl -s http://127.0.0.1:9867/text | jq . Response
{
"text": "High-performance browser automation bridge and multi-instance orchestrator...",
"title": "GitHub - pinchtab/pinchtab",
"url": "https://github.com/pinchtab/pinchtab"
} Click By Ref
pinchtab click e14curl -s -X POST http://127.0.0.1:9867/action \ -H "Content-Type: application/json" \ -d '{"kind":"click","ref":"e14"}' | jq .
Response
{
"success": true,
"result": {
"clicked": true
}
} Screenshot
pinchtab ss -o smoke.jpgcurl -s http://127.0.0.1:9867/screenshot > smoke.jpgls -lh smoke.jpg
Response
Saved smoke.jpg (55876 bytes) Export a PDF
pinchtab pdf -o smoke.pdfcurl -s http://127.0.0.1:9867/pdf > smoke.pdfls -lh smoke.pdf
Response
Saved smoke.pdf (1494657 bytes) Automation tool for the web
Use PinchTab as a scriptable browser endpoint for repeatable web tasks.
Fill a form field
pinchtab fill e3 "user@example.com"curl -s -X POST http://127.0.0.1:9867/action \ -H "Content-Type: application/json" \ -d '{"kind":"fill","ref":"e3","text":"user@example.com"}' | jq .
Response
{
"success": true,
"result": {
"filled": "user@example.com"
}
} Press a key
pinchtab press Entercurl -s -X POST http://127.0.0.1:9867/action \ -H "Content-Type: application/json" \ -d '{"kind":"press","key":"Enter"}' | jq .
Response
{
"success": true,
"result": {
"pressed": "Enter"
}
} Generate artifacts
pinchtab pdf -o report.pdfcurl -s http://127.0.0.1:9867/pdf > report.pdfls -lh report.pdf
Response
Saved report.pdf (1494657 bytes) pinchtab ss -o page.jpgcurl -s http://127.0.0.1:9867/screenshot > page.jpgls -lh page.jpg
Response
Saved page.jpg (55876 bytes) This fits:
- browser-driven scripts
- content extraction and reporting
- visual checks and artifacts
- automation tools that need a local browser endpoint
Human-agent development surface
When Chrome is already running in remote-debugging mode, PinchTab can attach to it and expose it through the same API.
1. Start Chrome with remote debugging
google-chrome --remote-debugging-port=9222# Or on some systems:# chromium --remote-debugging-port=9222
google-chrome --remote-debugging-port=9222# Or on some systems:# chromium --remote-debugging-port=9222
2. Read the browser CDP URL
curl -s http://127.0.0.1:9222/json/version | jq .curl -s http://127.0.0.1:9222/json/version | jq . Response
{
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/abc123"
} 3. Attach that browser to PinchTab
CDP_URL=$(curl -s http://127.0.0.1:9222/json/version | jq -r '.webSocketDebuggerUrl')curl -s -X POST http://127.0.0.1:9867/instances/attach \ -H "Content-Type: application/json" \ -d "{\"name\":\"dev-chrome\",\"cdpUrl\":\"$CDP_URL\"}" | jq .
CDP_URL=$(curl -s http://127.0.0.1:9222/json/version | jq -r '.webSocketDebuggerUrl')curl -s -X POST http://127.0.0.1:9867/instances/attach \ -H "Content-Type: application/json" \ -d "{\"name\":\"dev-chrome\",\"cdpUrl\":\"$CDP_URL\"}" | jq .
Response
{
"id": "inst_abc12345",
"profileId": "prof_def67890",
"profileName": "dev-chrome",
"attached": true,
"cdpUrl": "ws://127.0.0.1:9222/devtools/browser/abc123",
"status": "running"
} 4. Inspect it through PinchTab
pinchtab instancescurl -s http://127.0.0.1:9867/instances | jq . This is useful when:
- you are developing in a real browser session
- you want an agent to inspect the page you already have open
- you do not want PinchTab to launch a separate managed browser
- you want one local API for both managed and attached browser work