Phantom Browser

A Rust and Tauri desktop control plane wrapped around the Camoufox stealth runtime. Phantom Browser orchestrates a fleet of identity-isolated profiles — each with a deterministic BrowserForge fingerprint, a Decodo residential or mobile-carrier proxy, a CreepJS-aligned coherence model, and a dedicated Playwright CDP socket — behind a single REST API on port 7890. Built for OSINT collection, durable scraping, account warming, and any automation workload that has to survive a competent detection stack without leaking the operator.

24
Identity-isolated profiles in the live fleet
:7890
REST control plane port
3-tier
IP reputation gate (IPQS → ProxyCheck → AbuseIPDB)
Phantom Browser stealth orchestration interface showing profile fleet, fingerprint coherence, and proxy reputation scoring

Signature Key Art

A cinematic visual system built around the Phantom Browser stealth-orchestration theme — rendered via Flux and custom LoRA stacks on the iSN.BiZ Neo-Technical Brutalism palette.

Architecture Overview

Detection is no longer one signal. Modern fingerprinting stacks — CreepJS, FingerprintJS Pro, Cloudflare Bot Management, PerimeterX, Akamai — correlate dozens of independent surfaces and reject sessions where any pair disagrees. Phantom Browser is the orchestration layer that keeps every surface coherent for every profile, every launch.

The desktop application is a Rust and Tauri shell that owns profile state, proxy credentials, cookie jars, and the REST control plane on port 7890. Each profile is a JSON document — fingerprint, proxy block, identity persona, deterministic noise seeds, and a unique CDP port — persisted under ~/Library/Application Support/com.phantombrowser.app/. When a profile launches, the Rust backend spawns a Python child process (launcher.py) that drives Camoufox, the Firefox-based stealth fork.

Camoufox is patched at the C++ layer to neutralize the leakiest detection surfaces — canvas, audio, WebGL, navigator, screen, timezone, fonts, mediaDevices, battery, clientRects — and Phantom Browser supplies the per-profile parameters that make those neutralizations look real. BrowserForge generates statistically realistic Firefox fingerprints scoped to a target operating system. Decodo provides the proxy egress: a residential pool when the profile demands fixed-line geolocation, or a mobile pool routing through true cellular ASNs (T-Mobile 21928, AT&T Mobility 20057, Verizon Wireless 22394, Sprint 10507, Cricket 16814) when the profile demands carrier IP. Every IP is scored before launch through a three-tier reputation gate, and every launch ends with cookies persisted back to the profile so the next session resumes warm.

Each profile gets a unique CDP port (the live fleet uses 9222–9230 and 6001–7005). That means a single Phantom Browser host can run dozens of fully isolated Camoufox instances in parallel, each automatable through Playwright over the exposed CDP socket, without any browser-level state crossing identity boundaries.

Technical Capabilities

  • Camoufox stealth runtime (Firefox fork with C++-level fingerprint patches) driven by per-profile JSON config
  • BrowserForge fingerprint generation across Windows, macOS, and Linux with realistic CPU–memory–screen pairing
  • Deterministic SHA-256 noise seeds per profile UUID for canvas, audio, WebGL, cursor, font, mediaDevices, battery, clientRects
  • Decodo residential and mobile proxy integration with session rotation, country and city targeting, and configurable session duration
  • Three-tier IP reputation gate — IPQS, then ProxyCheck.io, then AbuseIPDB — with quota-exhaustion fallback and an unscored-launch lockout
  • Client-side mobile-carrier classifier with ASN allowlist, ISP-substring veto, and datacenter-ASN hard reject (AWS, GCP, OVH, Hetzner, Cloudflare, etc.)
  • Per-profile Playwright CDP socket on a unique remote-debugging port for parallel automation without state collision
  • Per-profile cookie persistence (load on launch, save on SIGTERM) for warm-session continuity across restarts
  • Built-in CreepJS-aligned detection dashboard loaded as the first tab on every launch — eleven panels, live status
  • REST control plane on port 7890 for programmatic profile launch, status, and shutdown from the broader iSN.BiZ automation stack

Deep Dive: Stealth and Fingerprint Resistance

Modern detection is correlation. A bot is not caught by a single signal — it is caught by two signals that disagree. Phantom Browser is engineered around that fact.

Triangle Coherence: Timezone, Country, Locale

CreepJS and similar correlators reject sessions where the JavaScript-reported timezone disagrees with the IP geolocation, or where either disagrees with navigator.language. Phantom Browser enforces a triangle invariant at profile-build time: if the proxy egresses through Los Angeles, the timezone is locked to America/Los_Angeles and the locale is locked to a US English variant. The hermes profile, for example, ships with timezone=America/Los_Angeles, city=Los Angeles, ZIP=90014, and a Decodo mobile session targeting user-...-country-us-city-los_angeles-sessionduration-60. The three corners of the triangle are derived from one source, not three.

Deterministic Noise Seeds

Every profile carries deterministic SHA-256-derived seeds for canvas, audio, WebGL, cursor, font, mediaDevices, battery, and clientRects noise. The seeds are computed as u32(profile_uuid + label) with no separator, matching the seed derivation used elsewhere in the iSN.BiZ automation pipeline so the desktop app and downstream tooling generate the same bits for a given identity. The reason matters: CreepJS 2025 explicitly flags inconsistent per-call noise as bot behaviour. Real browsers produce stable canvas hashes session over session; only naive randomized spoofers re-roll on every render. Phantom Browser produces stable, identity-locked noise that survives re-launch.

Font Spoofing by Device Category

Font enumeration is one of the cheapest and most-trusted fingerprint surfaces. A real Apple M1 MacBook ships a specific set of seventy-odd system fonts; a real Windows 11 desktop ships a different set; a fresh Linux install ships a third. Phantom Browser injects font lists scoped by deviceCategorymacbook_m1, windows_desktop, linux_workstation — so a profile claiming to be an Apple M1 with macOS reports the seventy fonts that machine actually ships, not the host operating system's font list.

Multi-Tier IP Reputation Gate

Before any profile launches, the chosen Decodo session has to clear a reputation threshold. The launcher's --scan-ip mode rotates Decodo session IDs in parallel, queries each candidate through ip.decodo.com/json for first-hop ISP and ASN data, and then runs the IP through a three-tier reputation chain: IPQualityScore first, then ProxyCheck.io, then AbuseIPDB. Default threshold is fraud_score ≤ 30. When IPQS quota is exhausted the gate falls through to ProxyCheck; when ProxyCheck is exhausted, AbuseIPDB takes over. If every provider is simultaneously down the launcher refuses to launch on an unscored session unless IPQS_ALLOW_UNSCORED=1 is set explicitly in the environment.

Aggregated ISP labels are kept across providers because providers disagree: Decodo's first-hop label may say Verizon 5G Home while ProxyCheck says Cellco Partnership. The classifier checks every label against a substring blocklist (5g home, fios, fixed wireless, hotspot) so a single bad label vetoes the IP even when the others look clean.

Mobile-Carrier Gate — Why Server-Side ASN Targeting Fails

Decodo exposes server-side asn-N targeting parameters, but live testing in 2026 confirmed two failure modes: server-side targeting silently falls back to whatever pool is available (three sequential carrier requests came back as the same T-Mobile session), and the mobile pool itself contains misclassified Verizon 5G Home and FiOS residential IPs the carrier filter is supposed to exclude. Phantom Browser therefore classifies every candidate IP client-side after the proxy egresses.

The classifier runs in two modes. "any" mode (default) accepts mobile and residential IPs and rejects only datacenter and hosting (AWS 16509, Google 15169, Cloudflare 13335, OVH 16276, Hetzner 24940, DigitalOcean 14061, Vultr 20473, M247 9009, and a dozen more), with hard-reject ISP substring markers hosting, datacenter, cloud, vps, colocation. "mobile" mode (set via IPQS_CARRIER_MODE=mobile) restricts to true cellular allowlist ASNs and additionally rejects residential ISP ASNs Comcast 7922, Charter Spectrum 20115, AT&T residential 7018, and Verizon Business 701 / 702.

CreepJS-Aligned Detection Dashboard

Every Camoufox launch opens with a built-in detection dashboard as the first tab. Operators see eleven coherence panels — IP & Proxy, WebRTC Leak Test, Navigator, Screen & Display, WebGL Fingerprint, Canvas Fingerprint, Timezone & Locale, Geolocation, Audio Fingerprint, Bot Detection, and Fonts — each with a live pass / fail / warn indicator. Before sending a profile against a real target, the operator confirms every panel says PASS. The dashboard surfaces the actual fields a real fingerprinter sees, not a generic "you are anonymous" claim.

Session Warming and Cookie Persistence

A fresh profile with no cookies and no browsing history is itself a signal. Phantom Browser's --warm mode walks the profile through a configurable list of warming URLs (Wikipedia, weather, BBC, Reuters, Stack Overflow, Reddit, Hacker News, Amazon, eBay, IMDb, ESPN, NYT, GitHub trending, and twelve more) before idling for interactive use. Every cookie picked up during warming — Cloudflare bot-management cookies, ad-network identifiers, regional preference cookies — is persisted to the profile's cookie jar on SIGTERM and reloaded on the next launch, so the second session starts with the trust signal of a returning visitor.

Component Architecture

💻

Tauri Desktop Shell

Rust Control Plane & Profile Manager

The Rust and Tauri desktop application owns profile JSON state, cookie jars, and credential resolution. The UI lists the active fleet, surfaces per-profile launch status, and dispatches launch commands as Python child processes. State lives under ~/Library/Application Support/com.phantombrowser.app/ with profile-scoped subdirectories for cookies and IP-reputation cache.

🚧

Camoufox Launcher

Python Driver & Fingerprint Injector

The launcher.py driver accepts a profile JSON document and executes the Camoufox stealth runtime with the right command-line flags. Responsibilities: fingerprint injection, font spoofing per device category, IP scan and reputation gate, cookie load and save, optional warming, and CDP socket exposure on the profile-assigned port.

🌐

REST Control Plane

Programmatic Fleet Orchestration on :7890

The desktop app exposes a REST API on port 7890 that other iSN.BiZ automation systems use to launch profiles, query status, and shut sessions down. The same control plane lets the broader stack — PAI, OpenClaw, EDGAR Intel collectors — treat Phantom Browser as a stealth browser-as-a-service rather than a desktop app a human has to click.

🔐

Decodo Proxy Stack

Residential & Mobile Egress with Reputation Gating

Decodo provides residential and true-cellular mobile proxies (T-Mobile, AT&T Mobility, Verizon Wireless, Sprint, Cricket) routed through gate.decodo.com:10000 for mobile and :7000 for residential. Session-rotation usernames embed country, city, and session-duration targeting. Credentials resolve through a typed env-loader, never hardcoded.

🔍

Detection Dashboard

CreepJS-Aligned Coherence Audit

An eleven-panel HTML dashboard loaded as the first tab on every Camoufox launch. Live pass / fail / warn indicators for IP & Proxy, WebRTC Leak Test, Navigator, Screen & Display, WebGL, Canvas, Timezone & Locale, Geolocation, Audio, Bot Detection, and Fonts. Every panel must read PASS before the operator points the profile at a real target.

📊

Automation Scripts

Per-Profile Launch Wrappers

Profile-specific launch wrappers (for example launch-hermes.py) generate a fresh Decodo session, IPQS-check the egress IP, inject the resolved credentials in-memory (never written to disk), then execv into launcher.py --warm --cdp-port N --cookie-dir <path>. Per-profile wrappers let identity-specific business logic live alongside the identity itself.

Implementation Details

The launcher CLI surface, profile schema, and credential-resolution model that hold the system together.

Launcher CLI Surface

The launcher accepts a profile JSON as its single positional argument and a small set of orthogonal flags. --headless and --headed select display mode. --humanize and --no-humanize toggle Camoufox's input humanization (cursor jitter, scroll easing, dwell-time variance). --cookie-dir <path> sets the per-profile cookie directory. --cdp-port <port> exposes the Playwright CDP websocket on a unique port. --warm runs the warming-URL walk before idling. --scan-ip rotates Decodo session IDs in parallel until one passes the reputation gate at fraud_score ≤ 30. --preflight runs the detection dashboard checks and exits without idling, useful for CI and headless validation.

Profile JSON Schema

Every profile is a single JSON document containing a fingerprint block (os, screen WxH, cores, memory in GB, webglVendor, webglRenderer, userAgent, timezone, locale), a noiseSeeds block (the eight u32 SHA-256-derived seeds), a proxy block (subscription, host, port, username, password placeholder), an identity block (persona name, ZIP, city, state, email), and a cdpPort. Ports are unique across the fleet — the live deployment uses 9222–9230 for one band and 6001–7005 for a second — so a single host can multiplex dozens of independent CDP-driven Camoufox processes without collision.

Credential Resolution & Env Loader

Profile JSON stores proxy passwords as the literal placeholder SET_IN_ENV_OR_1PASSWORD. The launcher resolves the placeholder at runtime via env_loader.read_env_var(), which reads from a .env alongside the scripts directory. DECODO_PASS resolves the mobile credential, DECODO_RESIDENTIAL_PASS the residential one. Selection is driven by profile.proxy.subscription (mobile or residential). Reputation-provider keys (IPQS_API_KEY, PROXYCHECK_API_KEY, ABUSEIPDB_API_KEY) resolve through the same loader.

IP Cache & Reputation Memoization

Reputation calls are cached in ~/Library/Application Support/com.phantombrowser.app/ip_cache.json keyed by Decodo session ID with a default TTL of ten minutes. The cache holds at most forty entries (FIFO eviction) and lets --scan-ip rotations skip re-querying recently-seen sessions. Quota-exhaustion flags for IPQS, ProxyCheck, and AbuseIPDB are tracked per-process so a single 429 stops further calls for the rest of the launcher's lifetime, dropping straight to the next provider in the chain.

launcher.py

Camoufox driver, fingerprint injection, IP scan, reputation gate, cookie load and save

fingerprint_gen.py

BrowserForge generator with deterministic SHA-256 noise-seed derivation per profile UUID

env_loader.py

Typed credential resolution from .env for Decodo, IPQS, ProxyCheck, AbuseIPDB

launch-hermes.py

Per-profile launch wrapper — mobile session, in-memory cred injection, exec into launcher

dashboard.html

CreepJS-aligned eleven-panel coherence dashboard, first tab on every launch

warming_sites.json

25-site warming list for cookie acquisition before idle and interactive use

Technology Stack

Rust Tauri Python 3.11 Camoufox Firefox BrowserForge Playwright CDP Decodo Residential Decodo Mobile IPQualityScore ProxyCheck.io AbuseIPDB CreepJS-aligned dashboard SHA-256 seeded noise REST :7890

Differentiation and Moat

Coherence-First, Not Stealth-Theater

Most "anti-detect" browsers ship a fingerprint randomizer and call it done. Phantom Browser enforces triangle coherence across timezone, country, and locale; deterministic noise per profile UUID; and per-device-category font lists. The detection dashboard exists so the operator can verify coherence before sending the profile at a target, instead of trusting a vendor checkbox.

Client-Side Carrier Classification

Decodo's server-side ASN targeting is documented broken in our 2026 testing — mobile pools include misclassified Verizon 5G Home and FiOS IPs, and three sequential carrier-targeted requests came back identical. Phantom Browser classifies every IP client-side after egress, with multi-source ISP-label aggregation that catches what a single provider would miss.

Three-Tier Reputation with Hard Lockout

IPQualityScore, ProxyCheck.io, and AbuseIPDB chained in fallback order with quota-exhaustion tracking. The launcher refuses to launch on an unscored session unless an explicit emergency env var is set — the default behavior is to fail closed, which is the only safe default for stealth automation.

REST-First Fleet Orchestration

Phantom Browser is not a desktop app a human clicks. The control plane on port 7890 lets the broader iSN.BiZ automation stack — PAI, OpenClaw, EDGAR Intel collectors, and downstream agents — treat a 24-profile stealth-browser fleet as a programmable resource. Identity, proxy, fingerprint, and CDP socket are all addressable over HTTP.

Why It Matters

A 24-profile stealth fleet wired into the iSN.BiZ automation stack as a programmable, REST-addressable resource, with verifiable coherence on every surface a competent fingerprinter inspects.

OSINT & Investigative Research

Open-source intelligence collection — people search, public-records research, social-media reconnaissance — routinely runs into geofencing, rate limiting, and bot-detection walls. Phantom Browser gives the analyst an identity-isolated profile per investigation: a Los Angeles mobile-carrier persona for one case, a New York residential persona for the next. Every profile boots with verified IP coherence and a real cookie history, so collection completes without the platform learning the operator.

Durable Scraping & Data Collection

Public data behind Cloudflare Bot Management, PerimeterX, or Akamai bot-detection layers. The Playwright CDP socket on each profile lets a scraper drive Camoufox the same way it would drive headless Chrome — but every request egresses through a reputation-scored residential or mobile IP, every fingerprint surface is coherent, and every session resumes with the cookies it earned last time. Collection that breaks weekly on a generic headless setup runs for months on a Phantom Browser profile.

Account Warming & Adversarial-Resistant Automation

Long-lived account work — trust building, content publishing, controlled testing of detection stacks — demands the same identity returning from the same coherent fingerprint over weeks, not a fresh randomized profile every session. Phantom Browser treats identity as the durable unit. The hermes profile in the live fleet is the canonical example: ARM macOS fingerprint, LA timezone, T-Mobile mobile egress, persistent cookies, dedicated mailbox — the same coherent presence on every launch.

Operator & Compliance Notice

Phantom Browser is operator infrastructure, not a hosted service. The platform enforces credential hygiene by design: no hardcoded passwords, env-loaded reputation API keys, in-memory proxy-credential injection that never writes resolved secrets to disk, and a fail-closed launch gate when reputation providers are unreachable. Phantom Browser is used by iSN.BiZ Inc for OSINT, public-data collection, and adversarial-resistance research; it is not licensed for traffic that violates a target site's terms of service or applicable law. Full architecture and operational documentation are available to qualified investors and security researchers under NDA.

Interested in This Solution?

Talk to us about Phantom Browser for OSINT, durable scraping, or adversarial-resistant automation engagements.

Schedule a Demo View All Projects