16 de agosto de 2026 · Por YasKad
CloakHQ/CloakBrowser

CloakBrowser: Chromium personalizado para automatización con huella coherente

CloakHQ/CloakBrowser · 31.693★ · 2.635 forks

Todo lo que hay que saber sobre CloakHQ/CloakBrowser: un envoltorio para Python, JavaScript y .NET que descarga un Chromium propio y conserva las APIs de Playwright o Puppeteer.


Qué es CloakBrowser

CloakBrowser es un navegador Chromium distribuido junto con envoltorios para Python, JavaScript y .NET. Su propuesta es sustituir el ejecutable ordinario de Playwright o Puppeteer por un binario de Chromium con modificaciones de código fuente en C++, sin cambiar el modelo de programación de esos clientes. El repositorio declara 71 modificaciones para señales como canvas, WebGL, audio, fuentes, GPU, pantalla, WebRTC, tiempos de red, automatización y comportamiento de entrada mediante CDP.

Iconos interconectados de Python, JavaScript y .NET unidos por flujos de datos, representando los envoltorios multilenguaje de CloakBrowser.

El proyecto distingue dos capas: el binario modifica características del navegador y el envoltorio mantiene opciones de automatización, como perfiles persistentes, proxy, zona horaria, idioma y humanize=True. Según su documentación, no incluye servicio de resolución de CAPTCHA ni rotación de proxies: el usuario aporta su proveedor de proxy y sigue empleando la API de automatización que ya conoce.

Plano futurista del motor Chromium con 71 nodos destacados que representan las modificaciones de código fuente en canvas, WebGL, audio y WebRTC.

El origen: una organización y un repositorio recientes

La API de GitHub fecha la creación de CloakHQ/CloakBrowser el 22 de febrero de 2026. La cuenta propietaria es la organización CloakHQ; PyPI identifica igualmente a CloakHQ como mantenedor del paquete. No se recuperó una publicación de lanzamiento, perfil público del autor individual ni entrevista que permita atribuir el proyecto a una persona concreta, por lo que no se infiere esa autoría.

La narrativa que sí documentan el README y el sitio oficial parte de una tensión técnica: presentan las bibliotecas de sigilo basadas en inyección de JavaScript o ajustes de opciones como frágiles ante actualizaciones de Chrome. La alternativa que proponen es compilar las modificaciones dentro de Chromium y mantener una interfaz compatible con Playwright y Puppeteer. Es el posicionamiento del proveedor, no una demostración independiente de superioridad.

Filosofía y principios

  • Compatibilidad antes que una API nueva: el flujo de migración oficial reemplaza el arranque de Playwright por from cloakbrowser import launch y conserva new_page() y goto().
  • Huella y comportamiento como problemas distintos: los parches del binario cubren señales de navegador, mientras que humanize=True añade curvas de ratón, pulsaciones con tiempos variables y desplazamiento.
  • Configuración contextual: al usar un proxy, geoip=True intenta alinear zona horaria e idioma con la IP de salida; el README recomienda modo con ventana visible y proxy residencial para objetivos estrictos.
  • Distribución verificable: el envoltorio afirma verificar descargas con firma Ed25519 fijada; el README ofrece además comprobaciones GPG, atestación de GitHub y Cosign para imagen Docker.

Silueta digital protegida por escudos holográficos que desvían haces de escaneo dirigidos a canvas, fuentes, GPU y tiempos de red.

Mapa mundial con una ruta de proxy residencial y paneles que muestran GeoIP, zona horaria e idioma sincronizados.

Sello criptográfico Ed25519 que protege un núcleo binario, rodeado de los logotipos de PyPI, npm, NuGet y Docker.

Cómo funciona

  1. Se instala el paquete Python, JavaScript o .NET; en el primer arranque descarga y deja en caché un binario de aproximadamente 200 MB para la plataforma.
  2. launch() inicia ese binario y devuelve un objeto de navegador compatible con Playwright; el adaptador JavaScript también dispone de una ruta para Puppeteer.
  3. Las opciones pueden configurar proxy, timezone, locale, geoip, headless, humanize, argumentos de Chromium y versión del binario.

Mano robótica manejando un ratón con estelas curvas que imitan el movimiento humano, junto a datos de pulsaciones y desplazamiento variables.

  1. Para sesiones persistentes, launch_persistent_context() conserva cookies, almacenamiento local y caché en un directorio de perfil. Para servicio remoto, cloakserve expone CDP y asigna procesos distintos por semilla de huella.

Bastidor de servidor con ventanas de navegador aisladas de distintos colores, cada una con su propio perfil y huella.

El README publica una tabla propia de pruebas contra más de 30 servicios de detección y afirma resultados concretos, como 0,9 en reCAPTCHA v3 para la versión Pro y 0,1 para Playwright convencional. Son mediciones del proveedor, fechadas en julio de 2026, no un estudio reproducido por una fuente independiente recuperada en esta investigación.

Escudo de Chromium desviando escáneres de detección de bots, con una puntuación de reCAPTCHA v3 de 0,9 frente a 0,1.

Estado oficial y semioficial

No se recuperó evidencia de que CloakBrowser haya sido aceptado en un mercado oficial de Playwright, Puppeteer, Microsoft o Chromium, ni de un aval de esos proveedores. Sí está publicado como paquete mantenido por CloakHQ en PyPI (cloakbrowser), npm (cloakbrowser), NuGet (CloakBrowser) y como imagen cloakhq/cloakbrowser en Docker Hub. PyPI marca los datos del proyecto como verificados por su plataforma; esa verificación de cuenta no equivale a certificación técnica por Playwright o Chromium.

En la práctica es un adaptador comercial y de código abierto: el código de los envoltorios está bajo MIT, mientras que el README separa una licencia para los binarios compilados. Los binarios v146 o anteriores se ofrecen sin redistribución; v148 y posteriores requieren suscripción Pro para descargarse, según BINARY-LICENSE.md enlazado por el proyecto.

El ecosistema

Repositorios de CloakHQ

La consulta a la API de repositorios públicos de la organización identificó estos acompañantes:

  • CloakHQ/chromium-stealth-builds: binarios Chromium precompilados con parches; el proyecto principal declara que los descarga automáticamente. Tenía 19 estrellas y 4 bifurcaciones.
  • CloakHQ/CloakBrowser-Manager: gestor web autoalojable de perfiles aislados y huellas únicas, presentado como alternativa libre a Multilogin; 855 estrellas y 198 bifurcaciones.
  • CloakHQ/crawl4ai y CloakHQ/crawlee-python: bifurcaciones alojadas por la organización de herramientas de rastreo; sus descripciones API no demuestran una dependencia directa, aunque el README de CloakBrowser incluye ejemplos de integración con Crawl4AI y Crawlee.
  • CloakHQ/awesome-playwright: lista curada de proyectos Playwright; 11 estrellas y 2 bifurcaciones.

Integraciones, bifurcaciones y extensiones

El README ofrece ejemplos para browser-use, Crawl4AI, Crawlee, Scrapling, Stagehand, LangChain, Selenium, undetected-chromedriver y agent-browser. El patrón documentado es iniciar CloakBrowser con --remote-debugging-port=9242 y conectar la otra herramienta por CDP, o recuperar el ejecutable con ensure_binary() y las opciones con get_default_stealth_args().

La API de bifurcaciones mostró, entre las de más estrellas, SayanDey322/CloakBrowser con 10 estrellas y varias copias con una o dos. Todas conservaban la misma descripción que el original; no se recuperó documentación que las establezca como puerto, traducción, extensión o mantenimiento alternativo. Tampoco se identificó una traducción no inglesa o un puerto comunitario sustantivo verificable durante esta medición.

Números del repo

Medición: 6 de agosto de 2026, API y página de GitHub.

MétricaValor
Estrellas29.669
Bifurcaciones2.435
Suscriptores reales139
Commits visibles en la página277
Incidencias abiertas visibles165
Solicitudes de cambios abiertas visibles20
Lenguaje principal APIPython
Licencia del códigoMIT
Creación22 de febrero de 2026
Último envío API5 de agosto de 2026
Última versión de PyPI0.5.5, 5 de agosto de 2026
Última publicación de binario recuperada en GitHubchromium-v150.0.7871.114.4-pro, 31 de julio de 2026

Los contribuidores principales que devolvió la API fueron Cloak-HQ (225 contribuciones), dependabot[bot] (15), evelaa123 (13), honor2030 (4) y eofreternal (3). watchers_count en la respuesta general de GitHub replica las estrellas, por eso se informa subscribers_count como suscriptores reales. La API daba open_issues_count=185; el campo puede mezclar incidencias y solicitudes de cambios abiertas, coherente con los 165 y 20 que la página separa.

Docker Hub mostraba más de 100.000 descargas de la imagen, sin precisión adicional. El sitio oficial mostraba 226.900 descargas para npm; no se recuperó un contador de descargas verificable de PyPI ni un dato mensual o semanal de esos registros.

Cómo contribuir

La contribución está descrita de forma breve: el README invita a abrir incidencias y solicitudes de cambios y afirma que responden con rapidez. No se recuperó CONTRIBUTING.md ni un flujo de ramas, plantilla de solicitud de cambios o arnés de evaluación específico. El repositorio sí contiene tests/, ejemplos y flujos de GitHub; no se atribuye a estos últimos una política de contribución que el proyecto no documenta.

Cómo lo recibió la comunidad

La evidencia externa recuperable es limitada y debe leerse con cautela:

  • El hilo de Hacker News 47949500, publicado por syabro el 29 de abril de 2026, presentó syabro/snitchmd, un contenedor que combina CloakBrowser y rs-trafilatura para convertir URLs protegidas por Cloudflare en Markdown. Obtuvo 8 puntos y 1 comentario. El texto de apertura describe a CloakBrowser como una de dos piezas ya existentes y advierte que no resuelve CAPTCHA interactivos; acredita un caso de integración, no una reseña independiente. La única pregunta recuperada, de sc0rp10, fue cuál era la diferencia respecto de Playwright, sin valoración posterior recuperada.
  • YouTube devolvió vídeos de terceros, no seleccionados por el proveedor. Entre ellos, un vídeo de Indie Hacker News sobre precio de herramientas de automatización y código abierto (23.000 visualizaciones aproximadas, dos meses antes de la consulta), y otro de Codedigipt que presenta CloakBrowser como herramienta de automatización (4.800). Sus títulos son promocionales; su existencia y las visualizaciones visibles no prueban las conclusiones que sugieren.
  • No se recuperaron hilos directos adicionales en Hacker News al buscar el nombre exacto. Reddit devolvió un desafío de acceso en las consultas de r/programming, r/webscraping y r/LocalLLaMA; X exigió inicio de sesión. Tampoco se recuperaron una página de Product Hunt, menciones verificables de Dev.to, Hashnode, podcasts o boletines, ni una lista awesome-* que incluya el proyecto. Estas ausencias describen los límites de la búsqueda, no una valoración de calidad.

CloakBrowser frente a otras propuestas

PropuestaCoincidencia verificableDiferencia documentada
PlaywrightCloakBrowser devuelve objetos y usa métodos compatibles con Playwright.Playwright usa su navegador estándar; CloakBrowser descarga un Chromium propio con parches y opciones de huella.
PuppeteerEl paquete JavaScript ofrece cloakbrowser/puppeteer.El README recomienda Playwright para reCAPTCHA Enterprise porque atribuye a CDP en Puppeteer filtraciones de automatización intermitentes; es una advertencia del proveedor.
playwright-stealthAmbos buscan reducir señales de automatización en flujos Playwright.CloakBrowser caracteriza playwright-stealth como inyección de JavaScript, frente a sus modificaciones de C++; no se recuperó un benchmark independiente de esa comparación.
undetected-chromedriverAmbos se relacionan con automatización Chromium y anti-detección.El README ofrece un ejemplo de integración y lo contrasta como opción de Selenium, no como reemplazo de la API nativa de Playwright.
CloakBrowser-ManagerUtiliza perfiles y huellas aisladas de CloakBrowser.Es un gestor web de perfiles, mientras que el repositorio principal es el binario y las bibliotecas de automatización.

Guía rápida de uso

Instalación y primer arranque

Python requiere Python 3.9 o superior, según PyPI:

pip install cloakbrowser
python -m cloakbrowser info

El primer inicio descarga y almacena en caché el binario de Chromium. Para JavaScript, el README documenta npm install cloakbrowser playwright-core; para Puppeteer, npm install cloakbrowser puppeteer-core. En .NET: dotnet add package CloakBrowser. Sin instalar nada localmente, la prueba oficial es:

docker run --rm cloakhq/cloakbrowser cloaktest

Flujos de trabajo habituales

  1. Sustituir un arranque Playwright: cambiar la importación por from cloakbrowser import launch, ejecutar browser = launch(), abrir browser.new_page() y navegar con page.goto(...).
  2. Usar proxy y contexto geográfico: launch(proxy="http://user:pass@proxy:port", geoip=True, headless=False, humanize=True). La documentación recomienda proxy residencial, modo con ventana y humanización para objetivos con detección estricta.
  3. Conservar una sesión: launch_persistent_context("./my-profile", headless=False) crea un perfil; repetir la misma ruta restaura cookies y almacenamiento local. También puede guardar estado Playwright con launch_context(storage_state="state.json") y context.storage_state(path="state.json").
  4. Servir CDP en Docker: docker run -d --name cloak -p 127.0.0.1:9222:9222 cloakhq/cloakbrowser cloakserve, seguido de pw.chromium.connect_over_cdp("http://localhost:9222") desde Playwright. El puerto se liga a localhost porque CDP controla por completo el navegador.

Configuración esencial

  • CLOAKBROWSER_LICENSE_KEY o ~/.cloakbrowser/license.key: habilita la descarga de binarios Pro; python -m cloakbrowser login obtiene o guarda la clave.
  • proxy y geoip=True: configuran IP y alineación de zona horaria e idioma; GeoIP hace llamadas HTTP mediante el proxy para resolver su salida.
  • headless=False y humanize=True: muestran el navegador y activan interacciones de ratón, teclado y desplazamiento modeladas.
  • launch_persistent_context("./my-profile"): directorio de perfil para cookies y caché persistentes.
  • CLOAKBROWSER_RELEASE_CHANNEL=preview o release_channel="preview": selecciona la compilación preliminar más reciente disponible; info explica si vuelve a estable.

Trampas frecuentes y soluciones

  • Bloqueo pese a los parches: el README atribuye muchos casos a reputación de IP, configuración geográfica o modo sin ventana. Propone proxy residencial, geoip=True, headless=False y humanize=True; en Linux sin pantalla, instalar Xvfb y usar DISPLAY=:99.
  • Detección por fuentes en Linux: para Kasada o Akamai, el proyecto señala que pueden faltar fuentes y afectar al renderizado de emoji; remite a su configuración de fuentes Linux. Para el ajuste de métricas Windows exige una compilación Chromium 148+ y fuentes Windows instaladas.
  • Sesiones nuevas cuestionadas por HTTP/2: el README sugiere calentar una vez un perfil persistente con args=["--disable-http2"] y reutilizarlo; limita esa opción a sitios que la necesiten.
  • CDP expuesto: no publicar el puerto 9222 sin autenticación. El ejemplo oficial usa 127.0.0.1; un proxy inverso debe reenviar Host, X-Forwarded-Host y X-Forwarded-Proto para que las URL WebSocket sean accesibles.
  • uvloop en un servidor web: la documentación recomienda --loop asyncio con Uvicorn para evitar bloqueos de tuberías de subprocesos.

Integraciones y migración

La migración desde Playwright es de una importación y un arranque. Para frameworks que se conectan a Chromium —browser-use, Crawl4AI y Scrapling— el README documenta iniciar launch_async(args=["--remote-debugging-port=9242"]) y apuntar el cliente a http://127.0.0.1:9242. La huella del binario funciona por CDP; la humanización no, salvo que se importe patchBrowser y resolveConfig desde cloakbrowser/human en JavaScript. También hay ejemplos para Selenium, Stagehand, LangChain, agent-browser y AWS Lambda.

Casos de uso y a quién puede ayudar este repositorio

  • Equipos que ya automatizan pruebas o flujos web con Playwright pueden ensayar una sustitución de bajo cambio de código: el navegador conserva las operaciones habituales de páginas y contextos, pero añade selección de binario, perfiles y opciones de proxy.
  • Servicios de supervisión, extracción o QA con sesiones persistentes pueden guardar cookies, almacenamiento local y caché mediante un directorio de perfil, o usar cloakserve como punto CDP interno para varios clientes. Deben proteger el acceso a CDP, pues la documentación advierte que permite ejecutar JavaScript y leer páginas o archivos.
  • Equipos que conectan agentes de navegador o rastreadores a CDP disponen de rutas explícitas para browser-use, Crawl4AI, Scrapling y otras herramientas. El proyecto resulta especialmente pertinente si esas integraciones necesitan controlar binario, huella, proxy, idioma y zona horaria desde un punto central.
  • Operadores de contenedores pueden ejecutar la imagen Docker para una prueba con cloaktest, empaquetar un guion propio o desplegar cloakserve. La utilidad real en un objetivo concreto debe validarse de forma legítima y respetando términos de servicio, límites de acceso y privacidad del sitio objetivo.

Recursos


Nota: este artículo combina el README, CHANGELOG y páginas del repositorio, las API de GitHub, PyPI, Docker Hub, el sitio oficial, Hacker News y resultados de YouTube consultados el 6 de agosto de 2026. Las cifras y disponibilidad cambian con el tiempo.

Comentarios