Pinchtab:AI エージェント向け12MBのGoブラウザAPI

Pinchtab: AI エージェント向け12 MBのGoブラウザAPI

AI エージェントは信頼性が高く、低コストでウェブページを読んだり、対話したり、制御したりする必要があります。既存の Playwright、Puppeteer、Browser Use などは、重いランタイム、厳格な言語バインディング、あるいは不要なオーバーヘッドを伴うことが多いです。Pinchtab は、1つの自己完結型 Go バイナリで、ヘッドレス Chrome インスタンスを起動し、純粋な HTTP API を公開し、トークン効率が高く、大規模で読み込みの多いワークロードに適しています。

Pinchtab とは

  • スタンドアロン HTTP サーバ – 言語 SDK は不要。curl、Python、Rust、OpenAI エージェントなどどのクライアントからも通信可能。
  • 12 MB Go バイナリgo build で生成、ランタイム時に外部依存は無し。
  • Chrome をバックエンドに – 実際の Chromium を管理しつつ、整った API で抽象化しています。
  • 双方向モードheadless で完全自動化パイプライン、headed で人間インタラクション付きワークフロー。
  • 組み込みステルスnavigator.webdriver を自動でパッチし、User‑Agent などを偽装。
  • セッション永続化 – クッキーとローカルストレージは再起動後も保持。マルチステップログインに便利。
  • トークン効率の高い出力/text (~800 トークン) と ?filter=interactive (~3 600 トークン) スナップショットモードで、LLM へ入力する際のコストを削減。

結果は「LLM プラグインのように感じるブラウザツール」です。起動が速く、使いやすく、非常に設定可能です。

Pinchtab が優れている理由

機能 Pinchtab Playwright MCP Browser Use
バイナリサイズ 12 MB 単一バイナリ 10 + GB 依存ツリー 5 GB コンテナ
プロトコル REST + WebSocket CDP + カスタムラッパー WebSocket + RPC
移植性 Go クロスコンパイル Node.js ランタイム Docker 必須
トークンコスト /text 800 tokens/ページ フルスナップショット 10 k+ tokens 10 k+ tokens
ヘッドレス/ヘッド付き 組み込みトグル CLI でヘッドレスのみ ヘッドレスのみ
ステルス 組み込みパッチ カスタムスクリプト必要 ネイティブサポートなし

ページを読むだけ、ボタンをクリックするだけなら、Pinchtab のテキストやインタラクティブスナップショットは、ビジョンモデルで完全スクリーンショットを撮るより 3–10 倍 安く、トークンコストを大幅に抑えられます。

はじめに

1. インストール

# ソースから
$ go install github.com/pinchtab/pinchtab@latest

# もしくは Docker(最も手軽)
$ docker run -d -p 9867:9867 --security-opt seccomp=unconfined pinchtab/pinchtab

デフォルトでリッスンするポートは 9867BRIDGE_PORT=9870 ./pinchtab で上書き可能です。

2. 基本的な curl の使い方

# ヘルスチェック
$ curl http://localhost:9867/health

# ページを読む
$ curl http://localhost:9867/text?tabId=1

# 参照でボタンをクリック(スナップショットで取得した ID)
$ curl -X POST http://localhost:9867/action \
  -d '{"kind":"click","ref":"e5"}'

全てのエンドポイントは純粋な JSON を返します。詳細は API セクションをご覧ください。

3. ヘッド付きモード(人間+エージェント)

$ BRIDGE_HEADLESS=false ./pinchtab

ブラウザーウィンドウを開き、ログイン、CAPTCHA の解決後、エージェント側から同じプロファイルの API(例: http://localhost:9869)を利用します。プロファイルは ~/.pinchtab/profiles/<name>/ に保存され、再起動時も保持されます。

4. ダッシュボードの使用

$ pinchtab dashboard
# ブラウザーで http://localhost:9867/dashboard を開く
# プロファイルの作成/インポート、ヘッド付きインスタンスの起動・停止

ダッシュボードは複数プロファイルとインスタンスを管理するシンプルな UI を提供します。

コア API の概要

メソッド パス 説明
GET /health サーバー状態
GET /tabs 開いているタブの一覧
GET /snapshot アクセシビリティツリー(構造化 JSON)
GET /screenshot JPEG 画像
GET /text ページテキスト (readability または raw)
POST /navigate URL に移動
POST /action クリック、タイプ、スクロールなど
POST /evaluate 任意の JavaScript を実行
POST /tab タブのオープン/クローズ
POST /tab/lock / /unlock タブへの排他アクセスをロック

スナップショットのクエリパラメータ

  • filter=interactive – ボタン、リンク、入力要素のみを含む、サイズを削減。
  • format=text – プレーンテキストツリー、JSON より 40–60 % トークン削減。
  • diff=true – 前回のスナップショットとの差分のみを返す。
  • noAnimations=true – CSS アニメーションを無効化し、決定論的な出力を実現。

テキストのクエリパラメータ

  • mode=raw – 生の inner‑text;それ以外は readability によって広告やナビゲーションを除外。

高度な機能

ステルスモード

Pinchtab は light(基本フラグ)と full(カンバス/WebGL/フォント偽装)という二段階ステルスを提供します。BRIDGE_STEALTH=fullで有効化。強力なボット検出対策が必要なサイトで必須です。

セッション永続化

デフォルトでは Cookie、ローカルストレージ、さらに開いているタブを ~/.pinchtab に書き出します。BRIDGE_PROFILE=/my/profile でカスタムディレクトリを指定できます。ヘッドレスモードでは POST /cookies で Cookie を直接注入可能です。

画像 & メディアブロック

BRIDGE_BLOCK_IMAGES=true または BRIDGE_BLOCK_MEDIA=true を設定すると帯域を削減し、スナップショットの高速化に貢献します。

カスタム Chrome フラグ

任意の Chrome フラグを CHROME_FLAGS="--no-sandbox --disable-gpu" で渡せます。CI 環境やリソース制限で便利です。

セキュリティ上の注意点

Pinchtab は実際のブラウザを介してエージェントに直接制御を与えます。必ず以下を守ってください。

  1. HTTP エンドポイントを BRIDGE_TOKEN で保護。
  2. 制限付きネットワーク/ファイアウォールの背後で稼働。
  3. 実験的なエージェントには使い捨て Chrome プロファイルを使用。

バイナリは外部にデータを送信しません。~/.pinchtab はパスワードと同様に保護してください。

ダッシュボードを使った操作のクイックリファレンス

# ダッシュボード起動
$ pinchtab dashboard
# UI 上で
# 1. プロファイルをインポート(「Import Profile」クリック)
# 2. 新しいインスタンスを起動(ヘッド付き/ヘッドレスを選択)
# 3. エージェントで返ってくる API URL を使用

ダッシュボードは POST /start/{id}/stop/{id} を公開し、プログラムからライフサイクルを制御できます。

よくあるユースケース

ユースケース Pinchtab のメリット
ウェブスクレイピング 高速で低トークンのテキスト抽出 100 ページのニュース記事を $0.05 程度で収集
AI 補助チャットボット スムーズなブラウザ統合 OpenAI LLM がリアルタイムでクリックアクションを送信
自動テスト 視覚デバッグのためヘッド付きモード Docker Compose + ヘッド付きインスタンスで統合テスト実行
データパイプライン セッションを保持して再利用 一度ログインして毎日レポート取得

結論

Pinchtab は、ブラウザを AI ワークフローに組み込む際の摩擦を解消する実用的かつオープンソースのソリューションです。その軽量構成、HTTP ファーストのインターフェース、トークン効率の高い出力は、読み書き・操作を必要とする次世代 AI エージェントに最適です。12 MB のバイナリはノートパソコン、サーバー、Docker 内でも動作し、 API はまるで新しいプラグインのように感じられます。

この記事を共有