CloakHQ
6b8d8b6378
docs: add Font Setup on Linux section to README ( #179 )
2026-04-28 00:23:08 +02:00
252e79b17d
chore(deps): bump the actions group across 1 directory with 3 updates ( #178 )
...
Bumps the actions group with 3 updates in the / directory: [actions/setup-node](https://github.com/actions/setup-node ), [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish ) and [docker/build-push-action](https://github.com/docker/build-push-action ).
Updates `actions/setup-node` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/53b83947a5a98c8d113130e565377fae1a50d02f...48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e )
Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases )
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e...cef221092ed1bacb1cc03d23a2d87d1d172e277b )
Updates `docker/build-push-action` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/d08e5c354a6adb9ed34480a06d141179aa583294...bcafcacb16a39f128d818304e6c9c0c18556b85f )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: 6.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: pypa/gh-action-pypi-publish
dependency-version: 1.14.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: docker/build-push-action
dependency-version: 7.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 17:32:05 +02:00
CloakHQ
0ccdc71e47
docs: add @AlexTech314 to contributors, add Deployment Integrations section ( #177 )
2026-04-27 17:23:24 +02:00
Alex Stepansky and GitHub
74b1ff64db
feat(lambda): add AWS Lambda integration in examples/integrations/aws_lambda/ ( #177 )
...
feat(lambda): add AWS Lambda one-shot scrape integration
Self-contained example in examples/integrations/aws_lambda/ — Dockerfile,
entrypoint, handler, and docs for running CloakBrowser stealth scrapes in
AWS Lambda (container image). Includes smart_wait DOM-stability polling,
Xvfb headed mode, and Lambda-specific Chromium flags.
Contributed by @AlexTech314.
2026-04-27 17:20:02 +02:00
CloakHQ
a9a0ba13ba
fix(proxy): auto URL-encode SOCKS5 credentials in string URLs ( #157 )
...
Chromium's --proxy-server parser truncates passwords at '=' and other
special chars, causing SOCKS5 auth to silently fail and fall back to
direct connection. The dict path already encoded creds; now the string
path does too. Idempotent: pre-encoded input stays encoded.
2026-04-25 23:01:16 +02:00
CloakHQ
b04ad6ec2a
docs: credit @eofreternal for humanConfig type fix ( #151 )
2026-04-16 23:12:57 +02:00
CloakHQ
4459f66593
release: v0.3.25 — Chromium 146.0.7680.177.3, launch_context_async, contextOptions
v0.3.25
chromium-v146.0.7680.177.3
2026-04-16 22:24:36 +02:00
CloakHQ
ce8b92ba4f
feat: add launch_context_async() + JS contextOptions escape hatch ( #141 )
...
Python: add async counterpart to launch_context(). Forwards all kwargs to
browser.new_context() — enables storage_state, permissions, extra_http_headers,
etc. without needing a persistent profile folder.
JS: launchContext() and launchPersistentContext() silently dropped unknown
options. New contextOptions field in LaunchContextOptions is spread into
newContext() to forward arbitrary Playwright context options (e.g.
storageState, permissions, geolocation).
2026-04-16 21:30:40 +02:00
CloakHQ
4e1027847e
fix: bump CHROMIUM_VERSION display constant to .2 ( #157 )
2026-04-15 18:20:01 +02:00
Eternal and GitHub
f164c1c874
fix(types): type humanConfig properly ( #151 )
2026-04-12 22:58:48 +02:00
lilos and GitHub
f5e242a160
Update CHANGELOG for version 0.3.24 ( #139 )
...
Wrong username :(
2026-04-11 01:03:29 +02:00
CloakHQ
935beef980
docs: add recommended anti-bot config and SOCKS5 tips to troubleshooting
...
Based on recurring GitHub issue patterns (#117 , #78 , #130 , #131 ).
2026-04-10 23:47:42 +02:00
CloakHQ
c6d3469e4c
release: v0.3.24 — SOCKS5 proxy support, arm64 146 upgrade, ElementHandle humanize
v0.3.24
2026-04-10 22:42:29 +02:00
CloakHQ
cb0b87873e
feat: native SOCKS5 proxy support in proxy= parameter
...
Route SOCKS5/SOCKS5h proxies via --proxy-server Chrome arg instead of
Playwright's proxy dict (which rejects SOCKS5 with credentials).
Handles string URLs, Playwright dicts, IPv6, bypass lists.
SOCKS5 geoip exit IP resolution uses socks-proxy-agent (optional peer
dep). Falls back to DNS if not installed.
chromium-v146.0.7680.177.2
2026-04-10 22:20:16 +02:00
lilos and GitHub
2be8cdcc03
feat(humanize): add Playwright ElementHandle support and fix async tests ( #133 )
2026-04-10 22:18:14 +02:00
CloakHQ
be9a98db67
fix(test): correct cloakserve passthrough test for --fingerprint parsing
2026-04-10 21:40:20 +02:00
CloakHQ
9b004bbd85
docs: clarify humanize requires wrapper import over CDP ( #126 )
2026-04-09 21:08:48 +02:00
CloakHQ
5b2981c4c1
release: v0.3.23 — Puppeteer humanize, CDP humanize export, cloakserve locale fix
v0.3.23
2026-04-09 20:56:16 +02:00
lilos and GitHub
7afe59435e
feat: Add Puppeteer humanize support and fix Playwright humanize gaps ( #129 )
...
- Add full Puppeteer humanize implementation (page, frame, element handle patching)
- Fix critical Playwright gaps: page.pressSequentially, page.tap, page.clear
- Fix frame-level patching: frame.pressSequentially, frame.tap
- Add comprehensive stealth tests for Puppeteer
- Update SLOW test suite to use correct humanize: true API
- Add 4 new tests validating fixed Playwright methods
2026-04-09 20:49:20 +02:00
CloakHQ
1cef71133d
fix(test): clear CLOAKBROWSER_BINARY_PATH in puppeteer mock tests
...
Env var override takes precedence over ensureBinary mock, causing
test to fail in Docker where the var is always set.
2026-04-09 20:45:16 +02:00
CloakHQ
7a0937cc54
feat(js): expose humanize module for CDP-connected browsers ( #126 )
...
Add ./human export path to package.json so users can import patchBrowser,
patchPage, and resolveConfig to humanize CDP-connected Playwright instances.
2026-04-09 18:06:29 +02:00
CloakHQ
5b00ff0325
fix(cloakserve): route locale/timezone/seed CLI args through build_args()
...
CLI args like --fingerprint-locale were passed as raw passthrough args
to Chrome, missing the companion --lang flag that build_args() normally
adds. Caused Intl API to default to en-US while navigator.language
showed the correct locale — a detectable mismatch.
Fixes #130
2026-04-09 17:58:47 +02:00
CloakHQ
5dd44298ee
ci: use Node 24 for npm publish (Node 22.22.2 has broken npm)
...
Node 22.22.2's bundled npm 10.9.7 is missing promise-retry, breaking
npm install -g. Node 24 ships npm 11.11.0 with native OIDC support.
Ref: nodejs/node#62425 , actions/runner-images#13883
2026-04-09 04:52:12 +02:00
CloakHQ
54d8442f20
release: v0.3.22 — Chromium 146 upgrade (linux-x64)
v0.3.22
chromium-v146.0.7680.177.1
2026-04-09 04:36:42 +02:00
CloakHQ
a01adbe26c
ci: restore npm upgrade for OIDC publishing (pin to npm@11)
...
Node 22 ships npm v10 which lacks OIDC support. The upgrade step was
removed in 02359f6 but is required for provenance-based publishing.
Pin to npm@11 instead of @latest to avoid future breakage.
2026-04-07 07:31:08 +02:00
CloakHQ
06d77e7261
refactor: remove dead stealth args, let binary handle GPU diversity
...
Remove --disable-blink-features=AutomationControlled (dead, binary handles
navigator.webdriver at source level) and hardcoded GPU vendor/renderer flags.
Binary auto-generates diverse GPU profiles from fingerprint seed. Improves
fingerprint diversity -- previously every user shared the same GPU string.
Bump to v0.3.21.
v0.3.21
2026-04-07 07:16:22 +02:00
CloakHQ
211bd93d3e
fix(docker): install geoip2 in Docker image
...
geoip=True raised ImportError inside the container because geoip2
was not installed. Added [geoip] extra to pip install.
2026-04-07 06:37:14 +02:00
CloakHQ and kitiho
1060772734
fix: allow null viewport in Python wrapper (mirrors #107 )
...
viewport=None now disables viewport emulation via Playwright's
no_viewport=True, matching the JS wrapper's viewport: null behavior.
Uses a sentinel to distinguish "not provided" from explicit None.
Co-authored-by: kitiho <51785099+kitiho@users.noreply.github.com >
2026-04-07 05:14:01 +02:00
kitiho and GitHub
8eb2e4b905
fix: allow null viewport to disable viewport emulation ( #107 )
...
fix: allow null viewport to disable viewport emulation
2026-04-07 05:11:44 +02:00
CloakHQ
216a7d6a6a
fix(examples): enable geoip in stealth test to fix FingerprintJS detection
2026-04-06 02:38:26 +02:00
CloakHQ
02359f69c8
ci: remove npm self-upgrade step — Node 22 ships with compatible npm
2026-04-06 02:08:44 +02:00
CloakHQ
a0c7704c4b
release: v0.3.20 — 48 patches, WebRTC IP spoofing, proxy signal removal
v0.3.20
chromium-v145.0.7632.159.9
2026-04-06 01:54:35 +02:00
lilos
ccda93669e
feat(humanize): implement CDP Isolated Worlds and trusted keyboard events ( fixes #110 )
2026-04-06 01:43:46 +02:00
CloakHQ
eb4efef329
feat: add --fingerprint-webrtc-ip flag with auto-resolve support
...
Two ways to spoof WebRTC ICE candidate IPs:
1. --fingerprint-webrtc-ip=auto in args: resolves proxy exit IP via
HTTP call through the proxy (ipify.org). No extra deps needed.
2. geoip=True: auto-injects the flag for free (exit IP already
resolved during timezone/locale lookup, zero extra network cost).
Explicit IP (--fingerprint-webrtc-ip=1.2.3.4) also supported.
User-provided values always take precedence.
Python + JS wrappers, README docs, tests.
2026-04-06 01:16:10 +02:00
CloakHQ
25d34dcea3
feat(cloakserve): add connection tracking, configurable data dir, better status endpoint
...
- Move `import websockets` to top-level (guaranteed by [serve] extra)
- Add --data-dir flag with smart default (Docker → /tmp/cloakserve, bare metal → ~/.cloakbrowser/cloakserve)
- Store launch params (tz/locale/proxy) on ChromeProcess for conflict logging
- Enhance GET / to return per-process detail (pid, port, seed, connections, config)
- Add connection refcounting in WS handlers for status visibility
- Add first-launch-wins note to README
- Add tests for data-dir, Docker detection, and connection tracking
2026-04-05 22:41:33 +02:00
CloakHQ
c9e4f58353
feat: rewrite cloakserve as CDP multiplexer with per-connection fingerprint seeds
...
Spawns a separate Chrome process per unique fingerprint seed, all behind
a single port (9222). Clients specify seeds and fingerprint params via
query string on the CDP URL:
connect_over_cdp("http://host:9222?fingerprint=12345&timezone=Asia/Tokyo ")
Supports all --fingerprint-* flags as query params, geoip=true for
auto timezone/locale from proxy IP, and proxy= for per-process proxies.
- Rewrite bin/cloakserve from 57-line wrapper to aiohttp CDP multiplexer
- Add ChromePool with per-seed process management and port allocation
- Bidirectional WebSocket proxy for CDP traffic
- URL rewriting for /json/version, /json/list, and WS paths
- Rename _build_args -> build_args, _maybe_resolve_geoip -> maybe_resolve_geoip
- Add aiohttp + websockets to serve optional deps
- Dockerfile installs .[serve] extras
- Add 20 unit tests for cloakserve (param parsing, CLI args, URL rewriting)
2026-04-05 22:30:18 +02:00
CloakHQ
c58b691f1c
chore(deps): bump actions/checkout, docker/setup-qemu, docker/setup-buildx, docker/login-action; group Dependabot PRs
2026-04-05 22:26:14 +02:00
CloakHQ
1b91a33e51
chore: update integration examples and gitignore
...
- browser_use: migrate to BrowserSession + bundled ChatOpenAI API
- crawl4ai: add browser_mode="cdp" param
- gitignore: add captures/
2026-04-02 01:32:08 +02:00
CloakHQ
1bfd5ca036
docs: update patch count to 42, add --fingerprint-noise flag, bump version refs
2026-03-30 20:46:16 +02:00
CloakHQ
f46f8e9364
release: v0.3.19 — upgrade Linux x64 binary to 145.0.7632.159.8 (42 patches)
v0.3.19
chromium-v145.0.7632.159.8
2026-03-30 19:17:41 +02:00
592b3d5661
chore(deps): bump docker/build-push-action from 6.19.2 to 7.0.0 ( #90 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6.19.2 to 7.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/10e90e3645eae34f1e60eeb005ba3a3d33f178e8...d08e5c354a6adb9ed34480a06d141179aa583294 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 22:54:19 +02:00
a0a8210e35
chore(deps): bump actions/setup-python from 5.6.0 to 6.2.0 ( #89 )
...
Bumps [actions/setup-python](https://github.com/actions/setup-python ) from 5.6.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/a26af69be951a213d495a4c3e4e4022e16d87065...a309ff8b426b58ec0e2a45f0f869d46889d02405 )
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 22:54:17 +02:00
468964ff30
chore(deps): bump actions/setup-node from 4.4.0 to 6.3.0 ( #88 )
...
Bumps [actions/setup-node](https://github.com/actions/setup-node ) from 4.4.0 to 6.3.0.
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/49933ea5288caeca8642d1e84afbd3f7d6820020...53b83947a5a98c8d113130e565377fae1a50d02f )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: 6.3.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 22:54:15 +02:00
c1b93e634b
chore(deps): bump sigstore/cosign-installer from 3.9.1 to 4.1.1 ( #87 )
...
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer ) from 3.9.1 to 4.1.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases )
- [Commits](https://github.com/sigstore/cosign-installer/compare/398d4b0eeef1380460a10c8013a76f728fb906ac...cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 )
---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
dependency-version: 4.1.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 22:54:12 +02:00
5ccb4a32a5
chore(deps): bump actions/attest-build-provenance from 2.4.0 to 4.1.0 ( #86 )
...
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ) from 2.4.0 to 4.1.0.
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](https://github.com/actions/attest-build-provenance/compare/e8998f949152b193b063cb0ec769d69d929409be...a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 )
---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
dependency-version: 4.1.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 22:54:10 +02:00
CloakHQ
49d80d3b57
security: pin GitHub Actions to commit SHAs, add Dependabot
...
Pin all 22 action references across ci.yml, publish.yml, and
attest-release.yml to immutable commit SHAs. Mutable tags can be
force-pushed by attackers (cf. TeamPCP supply chain campaign).
Add Dependabot for github-actions to get weekly PRs when pinned
actions have new versions.
2026-03-27 21:20:08 +01:00
CloakHQ
2813b3dc4c
docs: warn that ElementHandle bypasses humanize patches
2026-03-18 07:51:07 +01:00
dgtlmoon and GitHub
6550f3ad6c
fix: ensure pw.stop() runs even if browser.close() raises or is cancelled ( #60 )
2026-03-15 17:51:03 +01:00
CloakHQ
132cafe13c
release: v0.3.18 — fix welcome banner polluting stdout ( fixes #59 )
v0.3.18
2026-03-15 17:19:44 +01:00
CloakHQ
6c94b9e985
feat: add GitHub issue template for bug reports
2026-03-15 07:11:33 +01:00