pinchtabControl a headless or headed Chrome browser via Pinchtab's HTTP API. Use for web automation, scraping, form filling, navigation, and multi-tab workflows. Pin...
Install via ClawdBot CLI:
clawdbot install luigi-agosti/pinchtabFast, lightweight browser control for AI agents via HTTP + accessibility tree.
Security Note: Pinchtab runs a local Chrome browser under your control. It does not access your credentials, exfiltrate data, or connect to external services. All interactions stay local unless you explicitly navigate to external sites. Binary distributed via GitHub releases with checksums. See TRUST.md for full security model and VirusTotal flag explanation.
The 30-second pattern for browser tasks:
# 1. Start Pinchtab (runs forever, local on :9867)
pinchtab &
# 2. In your agent, follow this loop:
# a) Navigate to a URL
# b) Snapshot the page (get refs like e0, e5, e12)
# c) Act on a ref (click e5, type e12 "search text")
# d) Snapshot again to see the result
# e) Repeat step c-d until done
That's it. Refs are stableβyou don't need to re-snapshot before every action. Only snapshot when the page changes significantly.
# Headless (default) β no visible window
pinchtab &
# Headed β visible Chrome window for human debugging
BRIDGE_HEADLESS=false pinchtab &
# With auth token
BRIDGE_TOKEN="your-secret-token" pinchtab &
# Custom port
BRIDGE_PORT=8080 pinchtab &
# Dashboard/orchestrator β profile manager + tab launcher
pinchtab dashboard &
Default: port 9867, no auth required (local). Set BRIDGE_TOKEN for remote access.
For advanced setup, see references/profiles.md and references/env.md.
After calling /snapshot, you get the page's accessibility tree as JSONβflat list of elements with refs:
{
"refs": [
{"id": "e0", "role": "link", "text": "Sign In", "selector": "a[href='/login']"},
{"id": "e1", "role": "textbox", "label": "Email", "selector": "input[name='email']"},
{"id": "e2", "role": "button", "text": "Submit", "selector": "button[type='submit']"}
],
"text": "... readable text version of page ...",
"title": "Login Page"
}
Then you act on refs: click e0, type e1 "user@example.com", press e2 Enter.
The typical agent loop:
Refs (e.g. e0, e5, e12) are cached per tab after each snapshot β no need to re-snapshot before every action unless the page changed significantly.
pinchtab nav https://example.com
pinchtab snap -i -c # interactive + compact
pinchtab click e5
pinchtab type e12 hello world
pinchtab press Enter
pinchtab text # readable text (~1K tokens)
pinchtab text | jq .text # pipe to jq
pinchtab ss -o page.jpg # screenshot
pinchtab eval "document.title" # run JavaScript
pinchtab pdf -o page.pdf # export PDF
For the full HTTP API (curl examples, download, upload, cookies, stealth, batch actions), see references/api.md.
| Method | Typical tokens | When to use |
|---|---|---|
| /text | ~800 | Reading page content |
| /snapshot?filter=interactive | ~3,600 | Finding buttons/links to click |
| /snapshot?diff=true | varies | Multi-step workflows (only changes) |
| /snapshot?format=compact | ~56-64% less | One-line-per-node, best efficiency |
| /snapshot | ~10,500 | Full page understanding |
| /screenshot | ~2K (vision) | Visual verification |
Strategy: Start with ?filter=interactive&format=compact. Use ?diff=true on subsequent snapshots. Use /text when you only need readable content. Full /snapshot only when needed.
Validated Feb 2026: Testing with AI agents revealed a critical pattern for reliable, token-efficient scraping.
See the full guide: docs/agent-optimization.md
The 3-second pattern β wait after navigate before snapshot:
curl -X POST http://localhost:9867/navigate \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}' && \
sleep 3 && \
curl http://localhost:9867/snapshot | jq '.nodes[] | select(.name | length > 15) | .name'
Token savings: 93% reduction (3,842 β 272 tokens) when using prescriptive instructions vs. exploratory agent approach.
For detailed findings, system prompt templates, and site-specific notes, see docs/agent-optimization.md.
tabId explicitly when working with multiple tabsBRIDGE_NO_RESTORE=true)BRIDGE_BLOCK_IMAGES=true or "blockImages": true on navigate for read-heavy tasksGenerated Mar 1, 2026
Automate daily price checks across competitor websites by navigating to product pages, extracting price data from specific elements, and logging changes. Use snapshot with compact format to minimize token usage and handle dynamic content efficiently.
Navigate to banking or financial portals, log in via form filling with secure credentials, and extract structured data like transaction histories or balance sheets. Leverage stable refs for reliable interaction with complex, authenticated interfaces.
Scrape property listings from multiple real estate websites by clicking through pagination, filtering results, and capturing details like price, location, and images. Use multi-tab workflows to parallelize data collection across sites.
Automate booking medical appointments by navigating clinic websites, filling patient forms, and selecting available time slots. Ensure compliance with data privacy by keeping all interactions local and secure.
Extract scholarly articles or datasets from academic journals and libraries by navigating search results, downloading PDFs, and capturing metadata. Use token-efficient snapshots to handle large volumes of text-heavy pages.
Offer monthly plans for businesses to automate repetitive web tasks like data scraping, form submissions, or monitoring. Provide managed Pinchtab instances with custom workflows and support, targeting SMEs needing cost-effective automation.
Provide expert services to integrate Pinchtab into existing AI agent systems for specific use cases like e-commerce or finance. Charge for setup, customization, and ongoing optimization, leveraging the tool's efficiency for client ROI.
License Pinchtab technology to other software companies or agencies, allowing them to embed browser automation into their own products. Generate revenue through licensing fees and partnerships, scaling across industries.
π¬ Integration Tip
Always include a 3-second delay after navigation to ensure page loads before snapshotting, and use compact snapshot formats to reduce token costs in AI workflows.
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.
Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications.
Advanced desktop automation with mouse, keyboard, and screen control
Manage n8n workflows and automations via API. Use when working with n8n workflows, executions, or automation tasks - listing workflows, activating/deactivating, checking execution status, manually triggering workflows, or debugging automation issues.
Design and implement automation workflows to save time and scale operations as a solopreneur. Use when identifying repetitive tasks to automate, building workflows across tools, setting up triggers and actions, or optimizing existing automations. Covers automation opportunity identification, workflow design, tool selection (Zapier, Make, n8n), testing, and maintenance. Trigger on "automate", "automation", "workflow automation", "save time", "reduce manual work", "automate my business", "no-code automation".
Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.