Tabs
Tabs are the main execution surface for browsing, extracting, and interacting with pages.
Use tab-scoped routes once you already have a tab ID. Use instance-scoped routes when you need to create a new tab in a specific instance.
Tab IDs should be treated as opaque values returned by the API. Do not construct them yourself or assume one stable format across all routes.
Shorthand Browser Commands
Top-level browser commands such as nav, snap, text, click, type, fill, pdf, ss, eval, and health now have their own quick reference pages.
Use those pages when you want the shorthand route plus the matching CLI command:
Open A Tab In A Specific Instance
curl -X POST http://localhost:9867/instances/inst_ea2e747f/tabs/open \ -H "Content-Type: application/json" \ -d '{"url":"https://pinchtab.com"}'
curl -X POST http://localhost:9867/instances/inst_ea2e747f/tabs/open \ -H "Content-Type: application/json" \ -d '{"url":"https://pinchtab.com"}'
{
"tabId": "8f9c7d4e1234567890abcdef12345678",
"url": "https://pinchtab.com",
"title": "PinchTab"
} There is no dedicated instance-scoped tab open CLI command today.
If you want a CLI shortcut that opens a tab and navigates it, use:
pinchtab instance navigate inst_ea2e747f https://pinchtab.compinchtab instance navigate inst_ea2e747f https://pinchtab.com List Tabs
Shorthand Or Bridge List
pinchtab tabscurl http://localhost:9867/tabs {
"tabs": [
{
"id": "8f9c7d4e1234567890abcdef12345678",
"url": "https://pinchtab.com",
"title": "PinchTab",
"type": "page"
}
]
} Notes:
GET /tabsis not a fleet-wide orchestrator inventory- in bridge mode or shorthand mode it lists tabs from the active browser context
pinchtab tabsfollows that shorthand behavior
One Instance
curl http://localhost:9867/instances/inst_ea2e747f/tabscurl http://localhost:9867/instances/inst_ea2e747f/tabs [
{
"id": "8f9c7d4e1234567890abcdef12345678",
"instanceId": "inst_ea2e747f",
"url": "https://pinchtab.com",
"title": "PinchTab"
}
] All Running Instances
curl http://localhost:9867/instances/tabscurl http://localhost:9867/instances/tabs Use GET /instances/tabs when you need the fleet-wide view.
Navigate An Existing Tab
pinchtab tab navigate <tabId> https://example.comcurl -X POST http://localhost:9867/tabs/<tabId>/navigate \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com"}'
{
"tabId": "8f9c7d4e1234567890abcdef12345678",
"url": "https://example.com",
"title": "Example Domain"
} Snapshot
pinchtab tab snapshot <tabId> -i -ccurl "http://localhost:9867/tabs/<tabId>/snapshot?interactive=true&compact=true" Use this to retrieve the accessibility snapshot and element refs for the page.
Text
pinchtab tab text <tabId> --rawcurl "http://localhost:9867/tabs/<tabId>/text?raw=true" Find
curl -X POST http://localhost:9867/tabs/<tabId>/find \ -H "Content-Type: application/json" \ -d '{"query":"login button"}'
curl -X POST http://localhost:9867/tabs/<tabId>/find \ -H "Content-Type: application/json" \ -d '{"query":"login button"}'
{
"best_ref": "e5",
"confidence": "high",
"score": 0.85
} There is no dedicated CLI find command today.
Action
pinchtab tab click <tabId> e5curl -X POST http://localhost:9867/tabs/<tabId>/action \ -H "Content-Type: application/json" \ -d '{"kind":"click","ref":"e5"}'
Other CLI-backed tab operations include:
pinchtab tab type <tabId> <ref> <text>pinchtab tab fill <tabId> <ref> <text>pinchtab tab press <tabId> <key>pinchtab tab hover <tabId> <ref>pinchtab tab scroll <tabId> <direction|pixels>pinchtab tab select <tabId> <ref> <value>pinchtab tab focus <tabId> <ref>
Screenshot
pinchtab tab screenshot <tabId> -o out.pngcurl "http://localhost:9867/tabs/<tabId>/screenshot?raw=true" > out.png pinchtab tab pdf <tabId> -o page.pdfcurl "http://localhost:9867/tabs/<tabId>/pdf?raw=true" > page.pdf Cookies
pinchtab tab cookies <tabId>curl http://localhost:9867/tabs/<tabId>/cookies Metrics
curl http://localhost:9867/tabs/<tabId>/metricscurl http://localhost:9867/tabs/<tabId>/metrics This returns aggregate browser metrics for the tab’s owning instance, not isolated per-tab memory.
Lock And Unlock
pinchtab tab lock <tabId> --owner my-agent --ttl 60curl -X POST http://localhost:9867/tabs/<tabId>/lock \ -H "Content-Type: application/json" \ -d '{"owner":"my-agent","ttl":60}'
pinchtab tab unlock <tabId> --owner my-agentcurl -X POST http://localhost:9867/tabs/<tabId>/unlock \ -H "Content-Type: application/json" \ -d '{"owner":"my-agent"}'
Close A Tab
pinchtab tab close <tabId>curl -X POST http://localhost:9867/tabs/<tabId>/close {
"status": "closed"
} Important Limits
- there is no documented
GET /tabs/{id}resource endpoint in the current server routes pinchtab tab info <tabId>exists in the CLI, but it depends on a route that is not part of the current documented HTTP surfaceGET /tabsandGET /instances/tabsserve different purposes and should not be treated as interchangeable