mcpField
P
PinchTab

PinchTab

ローカル
github.com/pinchtab生産性10.5k4 週間前に更新

PinchTab について

PinchTab は、AI エージェントが Chrome を操作できるようにする Go 製のスタンドアロン HTTP サーバーです。ローカルの単一ユーザー環境を主な対象とし、ヘッドレスとヘッドの両モード、複数インスタンス、ローカル優先のセキュリティ設定に対応しています。

主な機能

  1. 01HTTP API とコマンドラインによるブラウザ操作
  2. 02アクセシビリティ要素の参照によるページ操作
  3. 03ヘッドレスとヘッドありの Chrome プロファイル
  4. 04プロファイルを分離した並列インスタンス
  5. 05Docker コンテナでの実行

活用シーン

  1. 01エージェントにページの閲覧と内容の抽出を任せる
  2. 02ログイン済みのブラウザプロファイルでタスクを実行する
  3. 03CI で二つのサイトのバージョンを視覚的に比較する

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pinchtab": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
起動コマンドdocker run -i --rm '\'

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
oci\

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

PinchTab

PinchTab
AI エージェント向けのブラウザー操作
小さな Go バイナリ • HTTP API • トークン効率に優れています

完全なドキュメント リリース
Go CI
Go 1.26+
ライセンス

PinchTab とは?

PinchTab は、AI エージェントが Chrome を直接操作できるようにするスタンドアロンの HTTP サーバーです。

日常的なローカル利用では、通常、サーバーをユーザーレベルのデーモンとしてインストールします。これにより、エージェントのツールはバックグラウンドで稼働する同じブラウザー制御プレーンを再利用できます。

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

これにより、制御プレーンサーバーがインストールされ、リクエストを受け付ける準備が整ったデフォルトのヘッドレス Chrome インスタンスが起動します。リクエストはエージェントまたは手動の API 呼び出しから送信できます。

PinchTab は、まず、利用者が管理するマシンでのローカルな単一ユーザー制御を目的に設計されています。リモート構成や分散構成もサポートされていますが、これらは高度な運用者管理のデプロイ方法です。ループバックアドレス以外にバインドする場合、ポートを公開する場合、またはリモートブリッジを接続する場合は、トークン、ネットワーク境界、TLS またはリバースプロキシ、公開するエンドポイント群について、ご自身の責任で管理してください。

PinchTab を別のマシンで実行する場合は、セキュリティモデルを理解している場合に限ってください。プライベートネットワーク、またはその他の閉じたネットワーク内で運用し、パブリックインターネットに直接公開することは避けてください。また、明示的に必要でない限り、リスクの高いエンドポイント群は無効にしておいてください。有効にする場合は、必要なシステムだけがアクセスできるよう制限してください。

警告

ダッシュボード、HTTP API、MCP サーバー、リモート CLI 統合は、特権を持つ運用者向けの制御サーフェスです。信頼できないユーザーやマルチテナント環境への公開、またはパブリックインターネットへの直接公開を想定して設計されていません。ローカル環境以外でのデプロイを保護する方法がわからない場合は、サービスを公開する前にdocs/guides/security.mdを確認し、SECURITY.mdに記載された非公開のセキュリティ連絡窓口をご利用ください。

デーモンを実行しない場合、または Windows をご利用の場合は、代わりに次のコマンドを実行できます。

pinchtab server — 制御プレーンサーバーを直接実行します pinchtab bridge — 軽量なランタイムとして、単一のブラウザーインスタンスを実行します

pinchtab を引数なしで実行すると、初回利用時にセキュリティ設定を行い、その後、サーバーのステータス、セキュリティ状態、おすすめの次の手順を表示します。

pinchtab

セキュリティ

PinchTab は、デフォルトでローカル優先のセキュリティ方針を採用しています。

  • server.bind = 127.0.0.1
  • ダッシュボードのセッション Cookie が Secure になるのは、ダッシュボードが実際に HTTPS 経由で提供されている場合のみです
  • 機密性の高いエンドポイント群は、デフォルトで無効です
  • attach は、デフォルトで無効です
  • IDPI は、ローカルのみのウェブサイト許可リストで有効になっています

ループバック以外のアドレスで、意図的にプレーンな HTTP 経由でダッシュボードにアクセスすると、セッションが通信の暗号化なしで実行されていることを PinchTab が UI で警告するようになりました。可能な限り HTTPS または localhost を使用してください。server.cookieSecure = true を強制すると、ダッシュボードへのログインには HTTPS が必要になり、プレーンな HTTP では無言でループするのではなく、明示的に失敗します。

注意

デフォルトでは、IDPI は閲覧先をローカルでホストされているウェブサイトのみに制限します。 これにより、明示的に許可するまで、エージェントがパブリックインターネットを閲覧できないようにします。 この制限は、より広範なアクセスを有効にする前に、ブラウザーの自動化がもたらすセキュリティ上の影響を明確にするために設けられています。

ローカルでも信頼済みでもないウェブサイトへの閲覧を許可すると、セキュリティは低下します。PinchTab のコンテンツ防御が有効な場合でも、悪意のあるページによってブラウザーの攻撃対象領域が拡大し、有効になっている自動化機能と予期しない形で干渉する可能性があります。

詳細なガイドについては、docs/guides/security.md をご覧ください。

リモート、コンテナー、分散構成も可能ですが、PinchTab は、すぐに使えるインターネット公開型のブラウザーサービスとして設計されているわけではありません。ローカル以外のデプロイは、高度なセットアップとして扱い、明示的にセキュリティを確保してください。

どのような用途に使えますか

ヘッドレスナビゲーション

デーモンをインストールし、エージェントスキルを設定すると、エージェントは次のようなタスクを実行できます。

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

PinchTab は、エージェントがページを移動し、構造化コンテンツを抽出して、DOM を操作できるブラウザーツールを提供します。これにより、生の HTML や画像にトークンを浪費せずに済みます。

ヘッド付きナビゲーション

ヘッドレス自動化に加えて、PinchTab はヘッド付きの Chrome プロファイルをサポートしています。

認証情報、Cookie、拡張機能、または特定の環境を設定したプロファイルを作成できます。各プロファイルには、名前と説明を付けることができます。

たとえば、エージェントへの次のようなリクエストでは、

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

適切なプロファイルが自動的に選択され、処理が実行されます。

サイトの監査と視覚的な比較

PinchTab は、ブラウザーレベルでサイト全体を監査できます。スクリーンショット、コンソールエラー、アセットの破損、アクセシビリティスコア、Core Web Vitals、セキュリティ上の問題を確認し、リリース前に 2 つのサイトバージョンを視覚的に比較できます。

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

コマンドの詳細、レポートの構成、CI の例については、docs/audit.md をご覧ください。

ローカルコンテナーによる隔離

より強力な隔離を希望する場合、PinchTab を Docker 内で実行できます。

これにより、エージェントはサンドボックス環境でブラウザーを制御できるため、ローカルで自動化タスクを実行する際のリスクを軽減できます。

分散自動化

PinchTab は、コンテナーやリモートマシンにまたがる複数の Chrome インスタンス(ヘッドレスまたはヘッド付き)を管理できます。

一般的な用途は次のとおりです。

  • QA 自動化
  • テスト環境
  • 分散ブラウジングタスク
  • 開発ツール

複数の PinchTab サーバーに接続したり、リモートデバッグモードで実行中の Chrome インスタンスにアタッチしたりできます。

プロセスモデル

PinchTab はサーバーファーストです。

  1. デーモンをインストールするか、pinchtab server を実行して完全なコントロールプレーンを起動します
  2. サーバーにプロファイルとインスタンスを管理させます
  3. 管理対象の各インスタンスを、軽量な pinchtab bridge ランタイムの背後で実行します

実際には、次のようになります。

  • サーバー — メインの製品エントリーポイントおよびコントロールプレーン
  • Bridge — 単一のブラウザーインスタンスを管理するランタイム
  • Attach — 外部管理の Chrome インスタンスを登録するための高度なモード
主な使い方

基本的なユーザーフローは次のとおりです。

  1. Pinchtab をインストールします
  2. pinchtab daemon install でデーモンをインストールして起動します
  3. エージェントまたはツールの接続先を http://localhost:9867 に設定します
  4. PinchTab をローカルブラウザーサービスとして動作させます

これが、ブラウザーランタイムを置き換える標準的なシナリオです。 ほとんどのユーザーは pinchtab bridge を直接意識する必要はありません。また、初回セットアップやステータスの確認以外で、pinchtab 単体を使う必要もありません。

エージェントプラグイン(バイナリは別途インストールが必要です):

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

# OpenClaw
openclaw plugins install @pinchtab/pinchtab

Grok ユーザーは、PinchTab リポジトリのマーケットプレイスまたは GitHub から直接インストールできます。Grok プラグインのインストールと使い方のガイドを参照してください。

主な機能
  • CLI または Curl — コマンドラインまたは HTTP API から操作できます
  • トークン効率 — テキスト抽出を使うと 1 ページあたり 800 トークンです(スクリーンショットと比べて 5~13 倍低コスト)
  • ヘッドレスまたは画面表示 — ウィンドウなし、または Chrome を表示した状態で実行できます
  • 複数インスタンス — 分離されたプロファイルで、複数の Chrome プロセスを並行して実行できます
  • 自己完結型 — 約 30MB の単一バイナリで、ローカルにインストールされた Chrome または Chromium を操作します
  • アクセシビリティ優先 — 行ではなく DOM ノードを示す要素参照です。フィルター、セレクター、深さを変更しても同じ e5 が維持されます(フィルター後のビューは疎になります)。新しいドキュメントへの移動時にのみ無効になります
  • ARM64 に最適化 — Raspberry Pi を第一級でサポートし、Chromium を自動検出します
  • CloakBrowser 対応 — 標準の Chromium をフィンガープリントするサイト向けの、任意で使用できるドロップインプロバイダーです。PinchTab はユーザーが用意した CloakBrowser バイナリを起動します。リリースされた成果物に CloakBrowser は含まれていません。docs/guides/cloakbrowser.mdを参照してください。

クイックスタート

インストール

macOS / Linux:

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

Homebrew(macOS / Linux):

brew install pinchtab/tap/pinchtab

npm:

npm install -g pinchtab
エージェントスキル

npm パッケージには pinchtab エージェントスキルが含まれており、インストール時とアップグレード時に、検出したすべてのエージェントのホームディレクトリ(~/.claude/skills、~/.cursor/skills、~/.windsurf/skills、~/.codex/skills、OpenClaw)にコピーし、書き込んだ内容を表示します。配布されるコピーのフロントマターにはリリースバージョンとコンテンツハッシュが含まれているため、ソースコードをチェックアウトしなくても、古いコピーや手動で編集されたコピーを検出できます。

pinchtab skill status           # each detected copy vs the bundled skill; exit 1 if any is stale
pinchtab skill update           # install or refresh; an edited copy is kept and reported
pinchtab skill update --force   # replace an edited copy

チェックアウト内では、scripts/install-skills.sh がリポジトリのスキルへのシンボリックリンクを作成するため、編集内容がすぐに反映されます。同期時にシンボリックリンクを介した書き込みは行われません。

プラットフォームサポート

PinchTab で主にテストされているオペレーターのワークフローは、macOS と Linux 上でのローカル実行です。

Windows バイナリも公開されていますが、プロジェクトでは Windows に対する自動および手動のテストが同程度に行われていないため、Windows のサポートは現時点で限定的かつベストエフォートです。Windows では、デーモンのワークフローに頼らず、pinchtab server または pinchtab bridge を直接実行してください。

macOS では、普段使いの Google Chrome よりも、専用の自動化ブラウザー(Google Chrome for Testing または Chromium)の使用をおすすめします。メインの Chrome をヘッドレスで操作すると、PinchTab の実行中に通常のウィンドウを開けなくなる場合があります。PinchTab は現在、専用ブラウザーを優先して使用します。また、pinchtab doctor browsers は、自動化時にメインの Chrome が代わりに使われる場合に警告します。Chrome for Testing をインストールするか、browser.binary に別のビルドを指定してください。docs/reference/config.mdを参照してください。

シェル補完

pinchtab を PATH に追加した後、シェル補完を生成してインストールします。

# Generate and install zsh completions
pinchtab completion zsh > "${fpath[1]}/_pinchtab"

# Generate bash completions
pinchtab completion bash > /etc/bash_completion.d/pinchtab

# Generate fish completions
pinchtab completion fish > ~/.config/fish/completions/pinchtab.fish

Docker:

docker run -d \
  --name pinchtab \
  -p 127.0.0.1:9867:9867 \
  -v pinchtab-data:/data \
  --shm-size=2g \
  pinchtab/pinchtab

同梱コンテナーは、管理対象の設定を /data/.config/pinchtab/config.json に永続化します。 代わりに独自の設定ファイルを指定する場合は、そのファイルをマウントし、PINCHTAB_CONFIG でその場所を指定してください。

docker run -d \
  --name pinchtab \
  -p 127.0.0.1:9867:9867 \
  -e PINCHTAB_CONFIG=/config/config.json \
  -v "$PWD/config.json:/config/config.json:ro" \
  -v pinchtab-data:/data \
  --shm-size=2g \
  pinchtab/pinchtab
使い方

まず試すコマンド — 必要に応じてローカルサーバーを自動起動します:

pinchtab nav https://pinchtab.com --snap

または、フォアグラウンドでログを確認したい場合はサーバーを明示的に起動します:

pinchtab server

日常的なローカル利用におすすめ — デーモンを一度インストールします:

pinchtab daemon install
pinchtab daemon

これにより PinchTab がバックグラウンドで実行され、ターミナルを開いたままにしなくても、エージェントのツールから再利用できます。

ターミナル 2 — ブラウザーを操作します:

# Navigate; starts the server automatically if needed
pinchtab nav https://pinchtab.com

# Get page structure
pinchtab snap -i -c

# Click an element
pinchtab click e5

# Extract text
pinchtab text

または、HTTP API を直接使用します(すべてのリクエストにサーバートークンが必要です):

export PINCHTAB_TOKEN=$(pinchtab config token --stdout)

# Create a profile first (returns profile id)
PROF=$(curl -s -X POST http://localhost:9867/profiles \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"work"}' | jq -r '.id')

# Start an instance for that profile (returns instance id)
INST=$(curl -s -X POST http://localhost:9867/instances/start \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"profileId\":\"$PROF\",\"mode\":\"headless\"}" | jq -r '.id')

# Open a tab in that instance
TAB=$(curl -s -X POST http://localhost:9867/instances/$INST/tabs/open \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://pinchtab.com"}' | jq -r '.tabId')

# Get snapshot
curl -H "Authorization: Bearer $PINCHTAB_TOKEN" "http://localhost:9867/tabs/$TAB/snapshot?filter=interactive"

# Click element
curl -X POST "http://localhost:9867/tabs/$TAB/action" \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"kind":"click","ref":"e5"}'

基本概念

サーバー — PinchTab のメインプロセスです。プロファイル、インスタンス、ルーティング、ダッシュボードを管理します。

インスタンス — 実行中の Chrome プロセスです。各インスタンスには 1 つのプロファイルを設定できます。

プロファイル — ブラウザーの状態(Cookie、履歴、ローカルストレージ)です。一度ログインすれば、再起動後もログイン状態が維持されます。

タブ — 1 つのウェブページです。各インスタンスで複数のタブを開けます。

ブリッジ — 管理対象のインスタンスの背後で動作する、単一インスタンス用のランタイムです。通常はサーバーによって起動され、手動では起動しません。

詳しくは、基本概念ガイドをご覧ください。


PinchTab を選ぶ理由

項目PinchTab
トークン性能✅
ヘッドレス/ヘッドあり✅
プロファイル✅
高度な CDP 制御✅
永続セッション✅
バイナリサイズ✅
マルチインスタンス✅
外部 Chrome への接続✅
ベンチマーク:PinchTab と agent-browser の比較

エージェントのループ全体にかかるトークンコスト(Anthropic API)を測定しました。割合は、 「この指標では PinchTab のコストが agent-browser より N%低い」と読みます:

範囲コスト削減率リクエスト削減数トークン削減数
基本 Haiku(10 ステップ)9.5%23.0%17.9%
拡張 Haiku(24 ステップ)19.6%31.1%26.2%
拡張 Sonnet(24 ステップ)20.3%29.4%25.3%

作業の長さが増すほどコスト差は広がります(クリックからスナップショット取得までの往復が積み重なるため)。また、拡張範囲ではモデルによる差はほとんどありません。

概要についてはベンチマークの概要を、詳しい手法、実行ごとの表、ログについてはベンチマークの詳細をご覧ください。


プライバシー

PinchTab は完全なオープンソースで、ローカルファーストのツールです。テレメトリーや分析機能はなく、外部サービスへの接続も必須ではありません。バイナリはデフォルトで 127.0.0.1 にバインドされます。永続プロファイルにはブラウザーのセッションがマシン上にローカル保存されるため、人がブラウザーを再利用するのと同じように使えます。リモート環境や分散環境へのデプロイにも対応していますが、これらは標準の設定ではなく、運用者が明示的に管理する構成です。単一の Go バイナリ(約 30 MB)は完全に検証可能です:github.com/pinchtab/pinchtabからソースをビルドできます。


ドキュメント

ドキュメント全文は pinchtab.com/docs にあります。

使用例

AI エージェントによる自動化
# Your AI agent can:
pinchtab nav https://pinchtab.com
pinchtab snap -i  # Get clickable elements
pinchtab click e5 # Click by ref
pinchtab fill e3 "[email protected]"  # Fill input
pinchtab press e7 Enter              # Submit form
データ抽出
# Extract text (token-efficient)
pinchtab nav https://pinchtab.com/article
pinchtab text  # ~800 tokens instead of 10,000
マルチインスタンスのワークフロー
# Run multiple instances in parallel (profiles "alice" and "bob" must already exist — see POST /profiles above)
curl -s -X POST http://localhost:9867/instances/start \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"profileId":"alice","mode":"headless"}'

curl -s -X POST http://localhost:9867/instances/start \
  -H "Authorization: Bearer $PINCHTAB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"profileId":"bob","mode":"headless"}'

# Each instance is isolated
curl -H "Authorization: Bearer $PINCHTAB_TOKEN" http://localhost:9867/instances

PinchTab が Chrome のユーザーデータディレクトリをどのように管理し、並列インスタンス間の分離を確保するかについて、技術的な詳細は chrome-files.md をご覧ください。


開発

貢献に興味がありますか?CONTRIBUTING.mdから始めてください。 セットアップとワークフローの詳しいガイドはdocs/guides/contributing.mdにあります。

クイックスタート:

git clone https://github.com/pinchtab/pinchtab.git
cd pinchtab
./dev doctor                # Verifies environment, offers hooks/deps setup
./dev --help                # Shows the developer toolkit commands
go build ./cmd/pinchtab     # Build pinchtab binary

インストール済みの PinchTab とブラウザー設定の診断(設定ファイルの読み込み、ブラウザーの検出とバージョンの適合性、ヘッドレス起動時の CDP 公開、リクエスト形式の処理状況。CloakBrowser ではフィンガープリント関連フラグとフォントのチェックも追加)には、次を使用します:

pinchtab doctor             # human-readable report
pinchtab doctor --json      # machine-readable
pinchtab doctor --check <name>    # run a single check by name
pinchtab doctor browser <name>    # scope to one browser.targets entry

ライセンス

MIT — 無料のオープンソースです。


今すぐ始める: pinchtab.com/docs

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。