Undetectable. Still Fast.
Detection and performance benchmarks against CreepJS — proving Owl Browser passes every fingerprint test while keeping pace with bare-metal automation tools.
Baseline With Stealth Plugin
Playwright
- Headless: 100%
- Like Headless: 94%
- Platform: Linux
- GPU: ANGLE (Google, Vulkan 1.3.0 (S...
- Fonts: 1/51
- Devices: 0
- User Agent: HeadlessChrome
- Confidence: moderate
creepjs — fingerprint
Puppeteer
- Headless: 100%
- Like Headless: 50%
- Platform: Linux
- GPU: ANGLE (Google, Vulkan 1.3.0 (S...
- Fonts: 1/51
- Devices: 0
- User Agent: HeadlessChrome
- Confidence: moderate
creepjs — fingerprint
Owl Browser
- Spoofed: Unique fingerprint per context — each session gets its own identity
- Platforms: Windows, macOS, Linux
- Headless: 0%
- Like Headless: 31%
- Platform: Windows
- GPU: ANGLE (AMD, AMD Radeon RX 6900...
- Fonts: 5/51
- Devices: 7
- User Agent: Mozilla/5.0 (Windows NT 10.0...
- Confidence: moderate
creepjs — fingerprint
Fingerprint Uniqueness
Playwright and Puppeteer expose identical device fingerprints — they leak the real machine. Owl Browser generates unique fingerprints per profile at the C++ source level.
| Category | Playwright | Puppeteer | Owl (Windows) | Unique? |
|---|---|---|---|---|
| Canvas | f5ae5edb |
f5ae5edb |
dbf90531 |
|
| WebGL | 208a9379 |
208a9379 |
59bfb3f6 |
|
| Audio | 9048f6b9 |
9048f6b9 |
2655fd77 |
|
| Fonts | f936b9a1 |
f936b9a1 |
023b83e2 |
|
| DOMRect | c4c4b540 |
c4c4b540 |
8e02378c |
|
| SVGRect | cbd2ed1a |
cbd2ed1a |
cca10e0b |
|
| Screen | 5ccbceb6 |
b0313e03 |
39974c4d |
Identical hash — real device leaked
Unique hash — properly spoofed
Stealth Has a Cost. Here's How Small It Is.
Playwright and Puppeteer run bare — no fingerprint spoofing, no context isolation, no anti-detection. Every Owl request includes all of that, yet full-cycle times stay competitive. 1000 sequential iterations per browser, same machine, same network. Median times shown.
Cold Start
median (p95)
- Owl: 21.6ms
p95: 32.2 - Playwright: 60.8ms
p95: 77.1 - Puppeteer: 179.1ms
p95: 206.4
Navigation
median (p95)
- Owl: 183.0ms
p95: 213.0 - Playwright: 158.6ms
p95: 190.9 - Puppeteer: 162.9ms
p95: 195.0
Screenshot
median (p95)
- Owl: 41.5ms
p95: 42.4 - Playwright: 79.7ms
p95: 94.5 - Puppeteer: 98.9ms
p95: 116.0
Close
median (p95)
- Owl: 11.3ms
p95: 12.1 - Playwright: 14.9ms
p95: 22.6 - Puppeteer: 116.0ms
p95: 136.0
Full Cycle
median (p95)
- Owl: 258.5ms
p95: 296.7 - Playwright: 316.0ms
p95: 355.4 - Puppeteer: 560.0ms
p95: 612.1
Methodology: Each browser performs 1000 sequential iterations of: create/launch → navigate to target URL (wait for domcontentloaded) → capture screenshot → close. All times in milliseconds. Playwright and Puppeteer run inside the benchmark container (local process). Owl Browser runs in a separate container and is accessed via REST API over localhost, adding ~5-10ms of network overhead per API call — Owl's real times are faster than shown. Sequential execution, same machine. Owl times include the full cost of stealth — fingerprint generation, per-context isolation, and REST API overhead to an isolated container.
Concurrency Scaling
All sessions launch simultaneously. Each performs a full cycle — create context, navigate, screenshot, and close.
Owl, Playwright, and Puppeteer all completed successfully across every concurrency level.
Detection Immunity, Production Speed
Zero headless detection. Unique fingerprints on every session. Competitive full-cycle performance. Deploy Owl Browser and stop getting blocked.