onionwright
A real browser
that moves like a real person.
Stealth browsers hide the browser. Your agent still moves like a machine — instant jumps, no hesitation, perfectly even typing. onionwright fixes both halves, so an agent can run a session unattended and look like someone at a laptop.
- Log into an account and work inside it for an hour, unattended
- Fill a form, upload a file, wait for a slow page, retry when it fails
- Run overnight on a schedule, with the session still valid in the morning
- Keep several identities separate, each one consistent across restarts
co skills add onionwright co browser do "sign in and export last month's invoices"$0.10 per browser-hourSee what it fixes
What it fixes, and what it does not
Measured on the same detector, the same launch flags, one run each. Two checks still catch it. They are here because a claim you can disprove in five minutes costs more than a claim never made.
| Check | Stock Chrome | onionwright |
|---|---|---|
| navigator.webdriver | caught | passes |
| BotD verdict | caught | passes |
| mainWorldExecution | caught | caught |
| CSP bypass | caught | caught |
Nothing passes every detector, including the products that say they do. Main-world execution still leaves an anonymous stack frame, and CDP still ignores Content-Security-Policy. Both are tracked in the open.
What a stealth browser leaves out
A stealth browser
Patches the fingerprint so the browser looks ordinary. Everything about how it is used still comes from whoever is driving — which is fine when that is a person with hands.
A browser built to be driven by software
Same engine-level patches, plus the part a person supplies without thinking: curved mouse paths that overshoot and correct, dwell before a click, keystroke intervals that vary by which fingers type them. Your agent gets the behaviour it cannot generate on its own.
A person driving a stealth browser supplies the human part without noticing. An agent supplies none of it — which is why a fingerprint-only browser is finished for a human operator and half built for software.
Why the engine, not the driver
navigator.webdriver, the Sec-CH-UA header and the WebGL renderer are decided by the browser before any script runs. A driver-side library can only paper over them afterwards, and the paper is what gets detected next.
Engine-level, not driver-level
navigator.webdriver is removed by deleting the branch that produces it, not by overriding the property. An override leaves its own trace, which is what detectors look for once the obvious signal is gone.
Input that looks like a hand
Minimum-jerk trajectories, Fitts's law overshoot, 8–12 Hz physiological tremor, and keystroke timing fitted to a published biometrics dataset — including the negative flight times real typists produce by rolling keys.
One identity, consistently
A persona derives from your recovery phrase, so the same account presents the same machine across restarts and reinstalls. Changing face between sessions is itself the signal most platforms are looking for.
Nothing to install
It arrives through ConnectOnion. No download to manage, no profile GUI, no separate account — the browser is one line in code you were already writing.
Pricing
Pay for the hours you use. No subscription, no seat count, no minimum.
Pay as you go
$0.10 / browser-hour
8 hours a day is about $18 a month. One concurrent session. Billed from your ConnectOnion balance, alongside everything else you already spend there.
StartEnterprise
More than one at a time
Several browsers in parallel, separate identities, deployment on your own infrastructure. That needs a conversation rather than a checkout, because the answer depends on where you are running it.
Contact usQuestions
What is onionwright?
A patched Chromium build plus a humanized input layer for browser automation. It removes engine-level automation signals that no driver-side library can reach, and drives the mouse and keyboard with timing drawn from human motor models rather than instant jumps.
How is it different from Playwright or Puppeteer?
It is not a replacement — it runs underneath them. Playwright drives the browser; onionwright changes what the browser reports about itself and how the input looks. Existing Playwright code works unchanged.
How is it different from patchright or puppeteer-stealth?
Those patch the driver, which is the only layer they can reach. navigator.webdriver, the Sec-CH-UA header and the WebGL renderer are decided by the browser before any script runs, so they are fixed in the engine here rather than papered over afterwards.
What does it cost?
$0.10 per browser-hour, billed from your ConnectOnion balance. Eight hours a day is about $18 a month. One concurrent session per account; more than one is an enterprise conversation.
Does it pass every bot detection test?
No, and neither does anything else. It clears navigator.webdriver and flips BotD's verdict from bot to not-bot on the same run where stock Chrome is caught. Two checks still catch it: main-world execution leaves an anonymous stack frame, and CDP ignores Content-Security-Policy. Both are documented and being worked on.
Where does it run?
On your machine. A real host has a coherent fingerprint for free — a real GPU, real fonts, a residential IP — which is the part no software can synthesise convincingly. Linux builds are available now; macOS is next.