Skip to content

v1.1.0 — coherent fingerprint / profile control

Choose a tag to compare

@acunningham-ship-it acunningham-ship-it released this 23 Jul 14:01

Veil still ships your real Chrome identity by default. Opt in with a Fingerprint to present one internally consistent identity instead. The rule is coherence, not spoof-count.

Added

  • Fingerprint applied as one coherent set — timezone, locale, geolocation derived together (page.applyFingerprint / Browser.launch({ fingerprint }))
  • Seeded WebGL / canvas / audio noise — deterministic per profile, not per call
  • Preset profiles (PRESETS) + Fingerprint.random(seed?)
  • MCP veil_set_fingerprint tool
  • Consistency guard so client-hint / Accept-Language values can't drift

Notes

  • Everything CDP can set is set browser-level (no JS getter to unmask); only what CDP can't reach is injected on the prototype and masked to [native code]
  • Not spoofed: navigator.oscpu (Firefox-only), WebGL-canvas toDataURL read-back; screen.colorDepth rides an injected getter
  • 134 tests pass; core stealth suite unchanged

Full changelog: CHANGELOG.md