New
Free check: How detectable are you right now?
Browser infrastructure
for AI agents
Unlimited profiles. Unlimited possibilities. Everything you can do
in a browser, your agent can do too. Way faster and at scale.
0
Credentials or cookies that leave your machine
11x
Less spent on model tokens for the same hundred steps
18
Captcha types solved on live widgets, not test keys
8/8
Detector sites passed in our own audit bench
240 teams run their agents on it
#01 - The browser
Give every agent a machine that stays the same one.
The identity comes from the profile seed. Same seed, byte-identical values across restarts and across machines.

Persona
Coherent fingerprint axes, derived from the seed. Read-only.
- Runs on
- Local native Windows
- User agent
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36
- Platform
- Win32
- Chrome
- 148.0.7778.215
- Screen
- 1920×1080 @2x
- CPU / Memory
- 8 cores · 8 GB
- Timezone
- Europe/Vienna
- Locale
- de-AT
- WebGL renderer
- ANGLE (NVIDIA, NVIDIA GeForce GTX 1650 (0x00001F0A) Direct3D11 vs_5_0 ps_5_0, D3D11)
- GPU
- NVIDIA NVIDIA GeForce GTX 1650 (d3d11)
- WebGPU
- NVIDIA GeForce GTX 1650
- Fonts / Voices
- 58 fonts · 19 voices
- Noise seed
- 17265654078529133351
One browser per profile: its own logins, its own cookies, its own device. Two of them share nothing.
The GPU and the screen are the ones in your machine. A profile that contradicts itself refuses to start.
Engine updates come with the plan. Pin a version, verify it, roll back, and only the difference gets downloaded.

Persona
Coherent fingerprint axes, derived from the seed. Read-only.
- Runs on
- Local native Windows
- User agent
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36
- Platform
- Win32
- Chrome
- 148.0.7778.215
- Screen
- 1920×1080 @2x
- CPU / Memory
- 8 cores · 8 GB
- Timezone
- Europe/Vienna
- Locale
- de-AT
- WebGL renderer
- ANGLE (NVIDIA, NVIDIA GeForce GTX 1650 (0x00001F0A) Direct3D11 vs_5_0 ps_5_0, D3D11)
- GPU
- NVIDIA NVIDIA GeForce GTX 1650 (d3d11)
- WebGPU
- NVIDIA GeForce GTX 1650
- Fonts / Voices
- 58 fonts · 19 voices
- Noise seed
- 17265654078529133351
#02 - Signing in
Get your agent through the login, and keep it there.
Passwords live encrypted on your disk and get typed into the form. The agent never sees the value.

Sign in
Use your Microsoft account.
Every profile has its own address, with no email account behind it. Codes arrive where the agent works.
The six digits are computed inside the profile, from a secret that never leaves it. SMS arrives the same way.
Keys survive a crash and the window closing. Permission bubbles and device pickers get answered instead of stopping the run.

Sign in
Use your Microsoft account.
#03 - The agent layer
Hand your agent a page it can operate.
The agent looks at the page once, then only at what moved: 13,507 tokens where Playwright MCP needs 2.1 million.

First look
31 lines · 935 B
title: Log in — Shopify [e_122] heading "Log in" [e_123] heading "Continue to Shopify" [e_49] button "Sign in with passkey" [e_25] link "Continue with Google" [e_28] link "Continue with Apple" [e_31] link "Continue with Facebook" [e_34] link "Continue with WhatsApp" [e_16] button "Continue with email" (disabled) [e_3] textbox "Email" [e_39] link "Get started" [e_208] link "Need Help?" and 19 more
After one keystroke
4 lines · 182 B
+ [e_277] StaticText "Continue with email" + [e_159] image ~ [e_16] button "Continue with email" → no longer disabled ~ [e_3] textbox "Email" → = "ops@northgate.example"
Every step after the first carries the change, not the page.
Press and hold, image grids, sliders, rotation, the spoken one. They work because the input is human.
Every tool call becomes one step with its result and a screenshot. A click that did nothing is its own line.
Read-only mode, address rules, no file system, no payments. Keys and passwords never reach the model.

First look
31 lines · 935 B
title: Log in — Shopify [e_122] heading "Log in" [e_123] heading "Continue to Shopify" [e_49] button "Sign in with passkey" [e_25] link "Continue with Google" [e_28] link "Continue with Apple" [e_31] link "Continue with Facebook" [e_34] link "Continue with WhatsApp" [e_16] button "Continue with email" (disabled) [e_3] textbox "Email" [e_39] link "Get started" [e_208] link "Need Help?" and 19 more
After one keystroke
4 lines · 182 B
+ [e_277] StaticText "Continue with email" + [e_159] image ~ [e_16] button "Continue with email" → no longer disabled ~ [e_3] textbox "Email" → = "ops@northgate.example"
Every step after the first carries the change, not the page.

Video
Four upscales, picked and organised
- 0:00Open the wall and wait for the grid
- 0:14Type the prompt, four images come back
- 0:31Upscale the two that work, file them for the client
Files this render wrote
Video
MP4 · 1920×1080 · 24 MB
Social export
MP4 · 1080×1920 · 30 fps, the same film cut upright
GIF, subtitles, poster
A preview loop, SRT and WebVTT, an OpenGraph still
Videos
Your agent shoots the demo while it works.
The camera moves to whatever just happened, the cursor glides between the real click points, and a voice track with subtitles is generated with it. Five export targets, from the file for your landing page to an upright cut for social. Recording changes nothing about the run: a keystroke lands 0.03 milliseconds later than without it. The same recording also renders as proof, without zoom and with a burnt-in timestamp.
Videos
Your agent shoots the demo while it works.
The camera moves to whatever just happened, the cursor glides between the real click points, and a voice track with subtitles is generated with it. Five export targets, from the file for your landing page to an upright cut for social. Recording changes nothing about the run: a keystroke lands 0.03 milliseconds later than without it. The same recording also renders as proof, without zoom and with a burnt-in timestamp.

Video
Four upscales, picked and organised
- 0:00Open the wall and wait for the grid
- 0:14Type the prompt, four images come back
- 0:31Upscale the two that work, file them for the client
Files this render wrote
Video
MP4 · 1920×1080 · 24 MB
Social export
MP4 · 1080×1920 · 30 fps, the same film cut upright
GIF, subtitles, poster
A preview loop, SRT and WebVTT, an OpenGraph still
I use it to run about thirty agents that each need their own logged in account. Since every agent needs a separate identity I wanted something where the profile stays the same between runs.
It keeps the session, the cookies and the passkeys per profile. I haven't had to restart the nightly run since June.
Ines Halvorsen
Automation lead
Not taking our word for it?
Ask a model that has never met us,
then read the free check on your own browser.
