pinchtab is a free, open source data extraction & web scraping project written in Go and released under MIT. It has 10,269 GitHub stars, 774 forks and 4 open issues, and was last pushed 2 days ago. On this registry it ranks #21 of 45 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 4 stars over the last 3 tracked days.

What is pinchtab?

PinchTab is a standalone HTTP server written in Go that gives AI agents direct control over Chrome, aimed at developers and operators who run browser automation on a machine they manage themselves.

What it is

PinchTab is a high-performance browser automation bridge and multi-instance orchestrator with stealth injection and a real-time dashboard. It ships as a small Go binary that speaks over an HTTP API and is built to be token-efficient, so an agent platform can drive a real Chrome instance through the Chrome DevTools Protocol rather than through screen-level scripting. The server is typically installed as a user-level daemon, which lets several agent tools share one browser control plane running in the background. An MCP server and remote CLI integrations extend that same control plane to agent runtimes and external tooling.

The concrete problem it solves is context cost. Feeding raw HTML or images into an agent's context window is expensive and noisy, so PinchTab exposes browser tools that let a model navigate pages, extract structured content, and interact with the DOM directly. It sits in the Data & Analytics / Data Extraction & Web Scraping space, tagged with Go, Chrome DevTools Protocol, headless Chrome, and web scraping.

Key capabilities

  • Install and start in one step: curl -fsSL https://pinchtab.com/install.sh | bash, or pinchtab daemon install, which installs the control-plane server and starts a default headless Chrome instance.
  • Run the pieces separately when a daemon is unwanted: pinchtab server runs the control-plane server directly, and pinchtab bridge runs a single browser instance as a lightweight runtime.
  • Inspect posture on demand: bare pinchtab runs the security setup on first use, then prints server status, the security posture, and suggested next steps.
  • Drive headless navigation for agents, and create headed Chrome profiles configured with authentication, cookies, and extensions.
  • Local-first security defaults: server.bind = 127.0.0.1, sensitive endpoint families disabled by default, attach disabled by default, and IDPI enabled with a local-only website allowlist.
  • Dashboard session cookies are marked Secure only when the dashboard is actually served over HTTPS, and a plain-HTTP dashboard on a non-loopback address triggers an in-UI warning.

Who uses it and how

  • Individual developers running a daemon on a machine they control, where agent tools reuse the same background browser control plane instead of launching their own.
  • Agent-driven research and extraction tasks, such as asking a configured skill a question like "What are the main news about aliens on news.com?" and letting the agent navigate and pull structured content.
  • Teams that need authenticated sessions, using headed Chrome profiles configured with authentication, cookies, and extensions.
  • Advanced operators running remote, container, or distributed layouts on private networks, who manage tokens, TLS or reverse proxying, and endpoint exposure themselves.

Getting started

Install with curl -fsSL https://pinchtab.com/install.sh | bash or pinchtab daemon install, which starts the control-plane server together with a default headless Chrome instance. Where a daemon is not wanted, run pinchtab server for the control plane alone or pinchtab bridge for a single browser instance.

How it compares

No comparable or paid products are named in the facts available here, so PinchTab stands alone in this registry rather than being contrasted against named alternatives. Its own documentation positions it as a local, single-user tool rather than a turnkey internet-facing browser service, which is the main axis on which a reader should judge it.

When to use it — and when not to

A self-hoster must operate the daemon and its Chrome instances, and any non-local deployment adds token management, network boundaries, TLS or reverse proxying, and decisions about which endpoint families to expose. The project states plainly that the dashboard, HTTP API, MCP server, and remote CLI integrations are privileged operator control surfaces not designed for untrusted users, multi-tenant exposure, or direct public-internet access, so anyone needing a shared multi-tenant browser service should look elsewhere. The default IDPI posture restricts browsing to locally hosted websites only, which means public-web scraping requires deliberately reducing that protection.

project readme (upstream, from github) — read inline

PinchTab
Browser control for AI agents
Small Go binary • HTTP API • Token-efficient

Release
Go CI
Go 1.26+
License

What is PinchTab?

PinchTab is a standalone HTTP server that gives AI agents direct control over Chrome.

For day-to-day local use, the server is typically installed as a user-level daemon, allowing agent tools to reuse the same browser control plane running in the background.

curl -fsSL https://pinchtab.com/install.sh | bash
# or
pinchtab daemon install

This installs the control-plane server and starts a default headless Chrome instance, ready to accept requests from agents or manual API calls.

PinchTab is designed first for local, single-user control on a machine you manage. Remote and distributed layouts are supported, but they are advanced operator-managed deployments. If you bind beyond loopback, publish ports, or attach remote bridges, you are responsible for tokens, network boundaries, TLS or reverse proxying, and which endpoint families you expose.

If you run PinchTab on a different machine, do it only when you understand the security model. Keep it on a private or otherwise closed network, avoid exposing it directly to the public internet, and keep high-risk endpoint families disabled unless you explicitly need them. If you do enable them, lock them down so only the systems that need them can reach them.

[!WARNING] The dashboard, HTTP API, MCP server, and remote CLI integrations are privileged operator control surfaces. They are not designed for untrusted users, multi-tenant exposure, or direct public-internet access. If you are unsure how to secure a non-local deployment, review docs/guides/security.md and use the private security contact path in SECURITY.md before exposing the service.

If you prefer not to run a daemon, or if you're on Windows, you can instead run:

pinchtab server — runs the control-plane server directly pinchtab bridge — runs a single browser instance as a lightweight runtime

Running bare pinchtab runs the security setup on first use, then prints server status, the security posture, and suggested next steps:

pinchtab

Security

PinchTab defaults to a local-first security posture:

If you intentionally access the dashboard over plain HTTP on a non-loopback address, PinchTab now warns in the UI that the session is running without transport encryption. Prefer HTTPS or localhost when possible. If you force server.cookieSecure = true, dashboard login requires HTTPS and will fail explicitly on plain HTTP instead of looping silently.

[!CAUTION] By default, IDPI restricts browsing to locally hosted websites only. This prevents agents from navigating the public internet until you explicitly allow it. The restriction exists to make the security implications of browser automation clear before enabling wider access.

Expanding browsing to non-local or non-trusted websites is a security-reducing choice. Hostile pages can still increase browser attack surface and interact badly with enabled automation features even when PinchTab's content defenses are on.

See the full guide: docs/guides/security.md

Remote, container, and distributed setups are possible, but PinchTab is not positioned as a turnkey internet-facing browser service. Treat any non-local deployment as an advanced setup that you must secure explicitly.

What can you use it for

Headless navigation

With the daemon installed and an agent skill configured, an agent can execute tasks like:

"What are the main news about aliens on news.com?"

PinchTab exposes browser tools that allow agents to navigate pages, extract structured content, and interact with the DOM without wasting tokens on raw HTML or images.

Headed navigation

In addition to headless automation, PinchTab supports headed Chrome profiles.

You can create profiles configured with authentication, cookies, extensions, or specific environments. Each profile can have a name and description.

For example, an agent request like:

"Log into my work profile and download the weekly report"

can automatically select the appropriate profile and perform the action.

Site audits and visual comparison

PinchTab can audit whole sites at the browser level — screenshots, console errors, broken assets, accessibility score, Core Web Vitals, and security findings — and compare two site versions visually before a release:

pinchtab audit https://example.com --output-dir ./audit          # report.json + screenshots/
pinchtab audit https://example.com/sitemap.xml --sitemap --sample-size 2 --output-dir ./audit
pinchtab compare https://example.com https://staging.example.com --fail-on-diff   # CI gate

See docs/audit.md for the full command reference, report anatomy, and CI examples.

Local container isolation

If you prefer stronger isolation, PinchTab can run inside Docker.

This allows agents to control browsers in a sandboxed environment, reducing risk when running automation tasks locally.

Distributed automation

PinchTab can manage multiple Chrome instances (headless or headed) across containers or remote machines.

Typical use cases include:

You can connect to multiple PinchTab servers, or attach to Chrome instances running in remote debug mode.

Process Model

PinchTab is server-first:

  1. install the daemon or run pinchtab server for the full control plane
  2. let the server manage profiles and instances
  3. let each managed instance run behind a lightweight pinchtab bridge runtime

In practice:

Primary Usage

The primary user journey is:

  1. install Pinchtab
  2. install and start the daemon with pinchtab daemon install
  3. point your agent or tool at http://localhost:9867
  4. let PinchTab act as your local browser service

That is the default “replace the browser runtime” scenario. Most users should not need to think about pinchtab bridge directly, and only need bare pinchtab for first-run setup or a status overview.

Agent plugins (binary still installed separately):

# Grok Build, after listing in the official xAI marketplace
grok plugin install pinchtab --trust

# OpenClaw
openclaw plugins install @pinchtab/pinchtab

Grok users can install from the PinchTab repository marketplace or directly from GitHub. See the Grok plugin install and usage guide.

Key Features

readme truncated — read the full docs on github

Frequently asked questions

Is pinchtab free to use?

pinchtab is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pinchtab do?

High-performance browser automation bridge and multi-instance orchestrator with advanced stealth injection and real-time dashboard.

What is pinchtab written in?

pinchtab is primarily written in Go. Its source is publicly available at https://github.com/pinchtab/pinchtab, and it has 10,269 GitHub stars.