Pinchtab : l’API Navigateur Go de 12 Mo pour les Agents IA

Pinchtab : l’API Navigateur Go de 12 Mo pour les Agents IA

Les agents IA modernes ont besoin d’un moyen fiable et peu coûteux pour lire, interagir avec et contrôler des pages web. Les solutions existantes telles que Playwright, Puppeteer ou Browser Use apportent souvent des runtimes lourds, des liaisons linguistiques étroites ou des surcoûts inutiles. Pinchtab résout ce problème avec un binaire Go autonome unique qui lance une instance Chrome sans tête, expose une API HTTP pure et est efficace en jetons pour les charges de travail lourdes en lecture.

Qu’est‑ce que Pinchtab ?

  • Serveur HTTP autonome – aucune SDK linguistique requise ; curl, Python, Rust ou tout agent OpenAI peuvent y communiquer.
  • Binaire Go de 12 Mo – construit avec go build, sans dépendances externes à l’exécution.
  • Chrome en arrière‑plan – gère Chromium proprement, mais masque tout le travail lourd derrière une API propre et structurée.
  • Modes dualsheadless pour les pipelines d’automatisation complète et headed pour les workflows humains.
  • Furtivité intégrée – corrige automatiquement navigator.webdriver, falsifie le User‑Agent et d’autres indicateurs.
  • Persistance de session – les cookies et le stockage local persistent après redémarrages ; utile pour les connexions multi‑étapes.
  • Sortie efficace en jetons – propose /text (~800 tokens) et ?filter=interactive (~3 600 tokens), réduisant le coût lors de l’alimentation des LLM.

Le résultat est un outil navigateur qui ressemble à un plugin de LLM : démarrage rapide, utilisation facile et hautement configurable.

Pourquoi Pinchtab surpasse les habituels concurrents

Fonctionnalité Pinchtab Playwright MCP Browser Use
Taille binaire 12 Mo binaire unique Arbre de dépendances de 10 + GB Conteneur 5 GB
Protocole REST + WebSocket CDP + wrapper personnalisé WebSocket + RPC
Portabilité Go cross‑compile Environnement Node.js Docker requis
Coût en jetons /text 800 jetons/page Snapshot complet 10 k+ jetons 10 k+ jetons
Headless/Headed Bascule intégrée Headless uniquement en CLI Headless uniquement
Furtivité Patches intégrés Script personnalisé requis Pas de support natif

Lorsque vous avez seulement besoin de lire une page ou de cliquer sur un bouton, le snapshot texte ou interactif de Pinchtab est 3 à 10 fois moins cher en jetons qu’une capture d’écran complète avec un modèle vision, traduisant des économies à l’ordre de magnitude pour le scraping ou la surveillance à grande échelle.

Démarrage

1. Installation

# Depuis le code source
$ go install github.com/pinchtab/pinchtab@latest

# Ou Docker (le plus simple)
$ docker run -d -p 9867:9867 --security-opt seccomp=unconfined pinchtab/pinchtab

Le binaire écoute sur le port 9867 par défaut. Remplacez avec BRIDGE_PORT=9870 ./pinchtab.

2. Utilisation basique avec curl

# Vérifier la santé
$ curl http://localhost:9867/health

# Lire une page
$ curl http://localhost:9867/text?tabId=1

# Cliquer sur un bouton par référence (ID provenant du snapshot)
$ curl -X POST http://localhost:9867/action \
  -d '{"kind":"click","ref":"e5"}'

Tous les endpoints renvoient un JSON propre. Consultez la section API ci‑dessous pour les détails de paramètres d’interrogation et options avancées.

3. Mode Headed (humain + agent)

$ BRIDGE_HEADLESS=false ./pinchtab

Ouvrez une fenêtre de navigateur, connectez‑vous, résolvez le CAPTCHA, puis utilisez l’API du même profil (ex. http://localhost:9869). Les profils résident dans ~/.pinchtab/profiles/<nom>/ et persistent entre les redémarrages.

4. Utilisation du Dashboard

$ pinchtab dashboard
# ouvrir http://localhost:9867/dashboard dans un navigateur
# créer/importer des profils, lancer des instances headed, les arrêter

Le tableau de bord offre une interface simple pour gérer plusieurs profils et instances.

Vue d’ensemble de l’API

Méthode Chemin Description
GET /health Statut du serveur
GET /tabs Liste des onglets ouverts
GET /snapshot Arbre d’accessibilité (JSON structuré)
GET /screenshot Image JPEG
GET /text Texte de la page (readability ou raw)
POST /navigate Aller à une URL
POST /action Cliquer, taper, faire défiler, etc
POST /evaluate Exécuter JavaScript arbitraire
POST /tab Ouvrir/fermer des onglets
POST /tab/lock / /unlock Verrouiller un onglet pour un accès exclusif

Paramètres de requête Snapshot

  • filter=interactive – inclut seulement boutons, liens, entrées, réduisant la taille.
  • format=text – arbre textuel brut, ~40‑60 % de tokens de moins que JSON.
  • diff=true – renvoie seulement le delta depuis le dernier snapshot.
  • noAnimations=true – désactive les animations CSS pour un rendu déterministe.

Paramètres de requête Text

  • mode=raw – texte interne brut, sinon supprime publicités/navigation via readability.

Fonctionnalités avancées

Mode Furtif

Pinchtab propose deux niveaux de furtivité : light (flags de base) et full (falsification canvas/WebGL/font). Activez avec BRIDGE_STEALTH=full. Crucial lors de l’automatisation de sites avec une forte détection de bots.

Persistance de session

Par défaut, Pinchtab écrit cookies, stockage local, même onglets ouverts dans ~/.pinchtab. Vous pouvez pointer l’outil vers un répertoire personnalisé avec BRIDGE_PROFILE=/my/profile. En mode sans tête vous pouvez aussi injecter des cookies via POST /cookies.

Blocage d’images & média

Mettez BRIDGE_BLOCK_IMAGES=true ou BRIDGE_BLOCK_MEDIA=true pour réduire la bande passante et accélérer les snapshots.

Flags Chrome personnalisés

Passez n’importe quel flag Chrome avec CHROME_FLAGS="--no-sandbox --disable-gpu". Utile sur CI ou avec ressources limitées.

Considérations de sécurité

Pinchtab confie essentiellement à un agent le contrôle direct d’un navigateur réel exécutant vos données de compte. **Toujours ** :

  1. Sécuriser le point d’extrémité HTTP avec BRIDGE_TOKEN.
  2. Exécuter sur un réseau restreint ou derrière un pare‑feu.
  3. Utiliser des profils Chrome jetables pour les agents expérimentaux.

Le binaire n’envoie jamais vos données en dehors de votre machine sans que vous l’ayez activé. Protégez ~/.pinchtab comme vous protégez vos mots‑de‑passe.

Référence rapide : Travailler avec le Dashboard

# Démarrer le tableau de bord
$ pinchtab dashboard
# Dans l’UI
# 1. Importer un profil (cliquer sur "Import Profile")
# 2. Démarrer une nouvelle instance (choisir headed ou headless)
# 3. Utiliser l’URL API retournée dans votre agent

Le tableau de bord expose également POST /start/{id} et /stop/{id}, permettant une gestion programmatique du cycle de vie.

Cas d’usage communs

Cas d’usage Pourquoi Pinchtab Exemple
Scraping web Rapide, extraction texte peu coûteuse en jetons Scraping d’articles d’actualité sur un planning de 100 pages coûtant <0,05 €
Chatbots IA Intégration navigateur fluide LLM OpenAI envoie des actions de clic en temps réel
Tests automatisés Mode headed pour débogage visuel Exécuter des tests d’intégration avec Docker Compose + instance headed
Pipelines de données Maintient les sessions entre les exécutions Connexion unique à un portail puis récupère des rapports quotidiens

Conclusion

Pinchtab est une solution pragmatique, open‑source, qui élimine la friction d’intégrer un navigateur dans les flux de travail IA. Son empreinte réduite, son interface HTTP‑première et son output efficace en jetons en font un compagnon idéal pour les agents IA de nouvelle génération qui doivent lire, interagir avec et manipuler le web sans les surcoûts d’un framework navigateur complet. Essayez‑le – le binaire de 12 Mo fonctionne sur votre ordinateur portable, votre serveur ou dans Docker, et l’API ressemble à un nouveau plugin pour votre LLM préféré.

Original Article: Voir l’original

Partager cet article