# Showcase ## Browser for your agents Start the server and one instance first: ```bash pinchtab server #or pinchtab daemon install ``` Starting an instance may be optional, depending on strategy/config. ```bash curl -s -X POST http://127.0.0.1:9867/instances/start \ -H "Content-Type: application/json" \ -d '{"mode":"headless"}' | jq . # CLI Alternative pinchtab instance start # Response { "id": "inst_0a89a5bb", "profileId": "prof_278be873", "profileName": "instance-1741400000000000000", "port": "9868", "headless": true, "status": "starting" } ``` ### Navigate ```bash curl -s -X POST http://127.0.0.1:9867/navigate \ -H "Content-Type: application/json" \ -d '{"url":"https://github.com/pinchtab/pinchtab"}' | jq . # CLI Alternative pinchtab nav https://github.com/pinchtab/pinchtab # Response { "tabId": "CDP_TARGET_ID", "title": "GitHub - pinchtab/pinchtab", "url": "https://github.com/pinchtab/pinchtab" } ``` ### Snapshot ```bash curl -s "http://127.0.0.1:9867/snapshot?filter=interactive" | jq . # CLI Alternative pinchtab snap -i -c # 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 ```bash curl -s http://127.0.0.1:9867/text | jq . # CLI Alternative pinchtab text # Response { "text": "High-performance browser automation bridge and multi-instance orchestrator...", "title": "GitHub - pinchtab/pinchtab", "url": "https://github.com/pinchtab/pinchtab" } ``` ### Click By Ref ```bash curl -s -X POST http://127.0.0.1:9867/action \ -H "Content-Type: application/json" \ -d '{"kind":"click","ref":"e14"}' | jq . # CLI Alternative pinchtab click e14 # Response { "success": true, "result": { "clicked": true } } ``` ### Screenshot ```bash curl -s http://127.0.0.1:9867/screenshot > smoke.jpg ls -lh smoke.jpg # CLI Alternative pinchtab ss -o smoke.jpg # Response Saved smoke.jpg (55876 bytes) ``` ### Export a PDF ```bash curl -s http://127.0.0.1:9867/pdf > smoke.pdf ls -lh smoke.pdf # CLI Alternative pinchtab pdf -o 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 ```bash 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 . # CLI Alternative pinchtab fill e3 "user@example.com" # Response { "success": true, "result": { "filled": "user@example.com" } } ``` ### Press a key ```bash curl -s -X POST http://127.0.0.1:9867/action \ -H "Content-Type: application/json" \ -d '{"kind":"press","key":"Enter"}' | jq . # CLI Alternative pinchtab press Enter # Response { "success": true, "result": { "pressed": "Enter" } } ``` ### Generate artifacts ```bash curl -s http://127.0.0.1:9867/pdf > report.pdf ls -lh report.pdf # CLI Alternative pinchtab pdf -o report.pdf # Response Saved report.pdf (1494657 bytes) ``` ```bash curl -s http://127.0.0.1:9867/screenshot > page.jpg ls -lh page.jpg # CLI Alternative pinchtab ss -o 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 ```bash google-chrome --remote-debugging-port=9222 # Or on some systems: # chromium --remote-debugging-port=9222 ``` ### 2. Read the browser CDP URL ```bash 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 ```bash 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 ```bash curl -s http://127.0.0.1:9867/instances | jq . # CLI Alternative pinchtab instances ``` 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