Pinchtab: La API de Navegador Go de 12 MB para Agentes de IA

Pinchtab: La API de Navegador Go de 12 MB para Agentes de IA

Los agentes IA modernos necesitan una forma confiable y asequible de leer, interactuar y controlar páginas web. Las soluciones existentes como Playwright, Puppeteer o Browser Use suelen incluir runtimes pesados, bindings de lenguaje rígidos o sobrecarga innecesaria. Pinchtab resuelve el problema con un binario Go autónomo y compacto que inicia una instancia de Chrome sin cabeza, expone una API HTTP pura y es eficiente en tokens suficiente para resultar atractivo en cargas de trabajo de lectura masiva a gran escala.

¿Qué es Pinchtab?

  • Servidor HTTP independiente – no se necesita SDK de ningún lenguaje; curl, Python, Rust o cualquier agente OpenAI pueden comunicarse con él.
  • Binario Go de 12 MB – construido con go build, sin dependencias externas en tiempo de ejecución.
  • Chrome bajo el capó – administra el Chromium real, pero abstrae todo el trabajo pesado detrás de una API limpia y estructurada.
  • Modos dualesheadless para pipelines de automatización total y headed para flujos de trabajo con intervención humana.
  • Stealth integrado – corrige automáticamente navigator.webdriver, haciendo pasar el User‑Agent y otras banderas.
  • Persistencia de sesión – cookies y local‑storage sobreviven a reinicios; útil para logins de varios pasos.
  • Salida eficiente en tokens – ofrece /text (~800 tokens) y el modo de instantánea con ?filter=interactive (~3 600 tokens), reduciendo costos al alimentar LLMs.

El resultado es una herramienta de navegador que se siente como un plugin LLM: rápida de iniciar, fácil de usar y altamente configurable.

Por qué Pinchtab supera a los sospechosos habituales

Característica Pinchtab Playwright MCP Browser Use
Tamaño del binario 12 MB binario único árbol de dependencias de 10 + GB contenedor de 5 GB
Protocolo REST + WebSocket CDP + envoltorio personalizado WebSocket + RPC
Portabilidad compilación cruzada Go tiempo de ejecución Node.js Docker requerido
Costo en tokens /text 800 tokens/página instantánea completa 10 k+ tokens 10 k+ tokens
Headless/Headed conmutador integrado solo headless en CLI solo headless
Stealth parches integrados requiere script personalizado sin soporte nativo

Cuando solo necesitas leer una página o hacer clic en un botón, la captura de texto o instantánea interactiva de Pinchtab es 3–10× más barata en tokens comparado con una captura de pantalla completa con un modelo de visión, traduciendo en ahorros de órdenes de magnitud para scraping o monitoreo a gran escala.

Comenzando

1. Instalar

# Desde fuente
$ go install github.com/pinchtab/pinchtab@latest

# O Docker (más sencillo)
$ docker run -d -p 9867:9867 --security-opt seccomp=unconfined pinchtab/pinchtab

El binario escucha en el puerto 9867 por defecto. Reemplázalo con BRIDGE_PORT=9870 ./pinchtab.

2. Uso básico con curl

# Verificar salud
$ curl http://localhost:9867/health

# Leer una página
$ curl http://localhost:9867/text?tabId=1

# Hacer clic en un botón por ref (IDs desde instantánea)
$ curl -X POST http://localhost:9867/action \
  -d '{"kind":"click","ref":"e5"}'

Todos los endpoints devuelven JSON limpio. Consulta la sección de API a continuación para detalles sobre parámetros de consulta y opciones avanzadas.

3. Modo con cabeza (humano + agente)

$ BRIDGE_HEADLESS=false ./pinchtab
Abre una ventana del navegador, inicia sesión, resuelve el CAPTCHA y luego desde tu agente utiliza la API del mismo perfil (por ejemplo, http://localhost:9869). Los perfiles se guardan en ~/.pinchtab/profiles/<name>/ y persisten entre reinicios.

4. Usar el panel de control

$ pinchtab dashboard
# abrir http://localhost:9867/dashboard en un navegador
# crear/importar perfiles, lanzar instancias con cabeza, detenerlas
El panel ofrece una interfaz sencilla para gestionar múltiples perfiles e instancias.

Visión general de la API central

Método Ruta Descripción
GET /health Estado del servidor
GET /tabs Lista de pestañas abiertas
GET /snapshot Árbol de accesibilidad (JSON estructurado)
GET /screenshot Imagen JPEG
GET /text Texto de la página (readability o raw)
POST /navigate Navegar a una URL
POST /action Hacer clic, escribir, desplazarse, etc
POST /evaluate Ejecutar JavaScript arbitrario
POST /tab Abrir/cerrar pestañas
POST /tab/lock / /unlock Bloquear una pestaña para acceso exclusivo

Parámetros de consulta de snapshot

  • filter=interactive – incluye solo botones, enlaces e inputs, reduciendo el tamaño.
  • format=text – árbol de texto plano, ~40–60 % menos tokens que JSON.
  • diff=true – devuelve solo la diferencia de la última instantánea.
  • noAnimations=true – desactiva animaciones CSS para salida determinista.

Parámetros de consulta de texto

  • mode=raw – texto interno bruto; de lo contrario elimina anuncios/navegación mediante readability.

Características avanzadas

Modo stealth

Pinchtab ofrece dos niveles de stealth: light (banderas básicas) y full (spoofing de canvas/WebGL/fuentes). Actívalo con BRIDGE_STEALTH=full. Esto es crucial al automatizar sitios con detección de bots robusta.

Persistencia de sesión

Por defecto, Pinchtab escribe cookies, local storage e incluso pestañas abiertas en ~/.pinchtab. Puedes apuntar la herramienta a un directorio personalizado con BRIDGE_PROFILE=/my/profile. En modo sin cabeza también puedes inyectar cookies mediante POST /cookies.

Bloqueo de imágenes y medios

Establece BRIDGE_BLOCK_IMAGES=true o BRIDGE_BLOCK_MEDIA=true para reducir el ancho de banda y acelerar instantáneas.

Bandera de Chrome personalizada

Pasa cualquier bandera de Chrome con CHROME_FLAGS="--no-sandbox --disable-gpu". Esto puede ser útil en CI o recursos limitados.

Consideraciones de seguridad

Pinchtab esencialmente entrega a un agente control directo sobre un navegador real que ejecuta tus datos de cuenta. Siempre:

  1. Asegura el endpoint HTTP con BRIDGE_TOKEN.
  2. Ejecuta en una red restringida o detrás de un firewall.
  3. Usa perfiles de Chrome descartables para agentes experimentales.

El binario nunca envía tus datos fuera de tu máquina a menos que lo hagas tú. Guarda ~/.pinchtab como guardarías tus contraseñas.

Referencia rápida: uso con el panel de control

# Iniciar el panel
$ pinchtab dashboard
# En la UI
# 1. Importar un perfil (clic en "Importar Perfil")
# 2. Iniciar una nueva instancia (elige con o sin cabeza)
# 3. Usar la URL de API devuelta en tu agente
El panel también expone POST /start/{id} y /stop/{id}, habilitando la gestión del ciclo de vida de forma programática.

Casos de uso comunes

Caso de uso Por qué Pinchtab Ejemplo
Raspado web Extracción de texto rápida y con pocos tokens Raspado de artículos de noticias en un cronograma de 100 páginas con un costo inferior a <$0.05
Chatbots impulsados por IA Integración de navegador sin fisuras LLM de OpenAI envía acciones de clic en tiempo real
Pruebas automatizadas Modo con cabeza para depuración visual Ejecutar pruebas de integración con Docker Compose + instancia con cabeza
Flujos de datos Mantiene sesiones activas entre ejecuciones Inicio de sesión automático una vez en un portal y obtención de reportes diarios

Conclusión

Pinchtab es una solución pragmática y de código abierto que elimina la fricción de integrar un navegador en flujos de trabajo de IA. Su pequeño footprint, interfaz HTTP‑primero y salida eficiente en tokens lo convierten en el compañero ideal para los agentes IA de próxima generación que necesitan leer, interactuar y manipular la web sin la sobrecarga de marcos de navegador completos. Pruébalo: el binario de 12 MB corre en tu portátil, tu servidor o dentro de Docker, y la API se siente como un nuevo plugin para tu LLM favorito.

Artículo original: Ver original

Compartir este artículo