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.

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.

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 launchy conservanew_page()ygoto(). - Huella y comportamiento como problemas distintos: los parches del binario cubren señales de navegador, mientras que
humanize=Trueañade curvas de ratón, pulsaciones con tiempos variables y desplazamiento. - Configuración contextual: al usar un proxy,
geoip=Trueintenta 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.



Cómo funciona
- 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.
launch()inicia ese binario y devuelve un objeto de navegador compatible con Playwright; el adaptador JavaScript también dispone de una ruta para Puppeteer.- Las opciones pueden configurar
proxy,timezone,locale,geoip,headless,humanize, argumentos de Chromium y versión del binario.

- Para sesiones persistentes,
launch_persistent_context()conserva cookies, almacenamiento local y caché en un directorio de perfil. Para servicio remoto,cloakserveexpone CDP y asigna procesos distintos por semilla de 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.

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/crawl4aiyCloakHQ/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étrica | Valor |
|---|---|
| Estrellas | 29.669 |
| Bifurcaciones | 2.435 |
| Suscriptores reales | 139 |
| Commits visibles en la página | 277 |
| Incidencias abiertas visibles | 165 |
| Solicitudes de cambios abiertas visibles | 20 |
| Lenguaje principal API | Python |
| Licencia del código | MIT |
| Creación | 22 de febrero de 2026 |
| Último envío API | 5 de agosto de 2026 |
| Última versión de PyPI | 0.5.5, 5 de agosto de 2026 |
| Última publicación de binario recuperada en GitHub | chromium-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 yrs-trafilaturapara 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/webscrapingyr/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 listaawesome-*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
| Propuesta | Coincidencia verificable | Diferencia documentada |
|---|---|---|
| Playwright | CloakBrowser 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. |
| Puppeteer | El 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-stealth | Ambos 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-chromedriver | Ambos 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-Manager | Utiliza 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
- Sustituir un arranque Playwright: cambiar la importación por
from cloakbrowser import launch, ejecutarbrowser = launch(), abrirbrowser.new_page()y navegar conpage.goto(...). - 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. - 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 conlaunch_context(storage_state="state.json")ycontext.storage_state(path="state.json"). - Servir CDP en Docker:
docker run -d --name cloak -p 127.0.0.1:9222:9222 cloakhq/cloakbrowser cloakserve, seguido depw.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_KEYo~/.cloakbrowser/license.key: habilita la descarga de binarios Pro;python -m cloakbrowser loginobtiene o guarda la clave.proxyygeoip=True: configuran IP y alineación de zona horaria e idioma; GeoIP hace llamadas HTTP mediante el proxy para resolver su salida.headless=Falseyhumanize=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=previeworelease_channel="preview": selecciona la compilación preliminar más reciente disponible;infoexplica 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=Falseyhumanize=True; en Linux sin pantalla, instalar Xvfb y usarDISPLAY=: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 reenviarHost,X-Forwarded-HostyX-Forwarded-Protopara que las URL WebSocket sean accesibles. uvloopen un servidor web: la documentación recomienda--loop asynciocon 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
cloakservecomo 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 desplegarcloakserve. 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
- Repositorio: https://github.com/CloakHQ/CloakBrowser
- Documentación e instalación: https://github.com/CloakHQ/CloakBrowser#install
- Sitio oficial y precios: https://cloakbrowser.dev/
- Cambios oficiales: https://github.com/CloakHQ/CloakBrowser/blob/main/CHANGELOG.md
- Paquete Python: https://pypi.org/project/cloakbrowser/
- Paquete JavaScript: https://www.npmjs.com/package/cloakbrowser
- Imagen Docker: https://hub.docker.com/r/cloakhq/cloakbrowser
- Binarios complementarios: https://github.com/CloakHQ/chromium-stealth-builds
- Gestor de perfiles: https://github.com/CloakHQ/CloakBrowser-Manager
- Conversación HN: https://news.ycombinator.com/item?id=47949500
- Vídeos de terceros: https://www.youtube.com/results?search_query=CloakBrowser
- Comunidad y contacto: el sitio oficial enlaza Slack; el README proporciona
cloakhq@pm.mey GitHub Issues.
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