Skip to main content
agent browser

Give Your Agent
Reflexes for the Web

Antidetect Chromium with a harness that catches captchas, bans, and session resets before your agent's loop stalls.

Request Access
YOUR AGENT SURFSKY AGENT BROWSER agent loop | plan: route → dates → nonstop → extract act("goto flights.google.com") act("fill route MUC → LIS") act("set date sep 12") ! consent modal is blocking act("dismiss modal") act("filter: nonstop") ! click missed - layout shifted observe() → button moved, retry [harness] captcha caught, solved 7.4s extract({ airline, depart, price }) | finalizing { flight: "LH 2302", price: "€89" } windows 11 / chrome harness armed: captcha, bans, resets fingerprint: real device profile MUC LIS sep 12 nonstop morning bags fares refreshed just now LH 09:40 — 12:05 nonstop 2h 25m €89 select TP 13:20 — 15:50 nonstop 2h 30m €112 select LH 18:10 — 22:40 1 stop 4h 30m €134 select Before you continue We and our partners use cookies. Accept all Manage options I'm not a robot surfsky harness: auto-solved 7.4s
amazon.com us-res-12 2tb nvme ssd cart: 1 order placed #702-4815620 - arrives thu task: order a 2tb nvme ssd act("search ssd") ! captcha[harness] solve_captcha (7.2s) act("add to cart") act("checkout") ! proxy flagged[harness] switch_proxy (3.4s) act("place order") ! login wall[harness] restore_session order placed: 3 interrupts, 0 blocked // no detection code in the agent
Web AI Agent

Agent tasks fail four steps in, not at step one.

Captchas appear mid-flow. Proxies get flagged. Sessions reset to the login wall. The harness has a tool for each. Your agent keeps moving without writing detection code.

features

More than antidetect.
Built for the agent loop.

Each browser runs in an isolated container with a unique fingerprint, proxy tunnel, and captcha solver. You just connect and work.

Any LLM, one key

01

Claude, GPT, Gemini, DeepSeek, Grok. Any OpenAI-compatible model. Switch with a string.

Claude
ChatGPT
Gemini
Grok
DeepSeek
Any open AI
one key

Every agent framework

02

browser-use, LangGraph, Stagehand, Claude/OpenAI Agent SDKs, MCP. Anything that speaks CDP. Drop in the URL.

wss://surfsky.io/session/a7f3… CDP
browser-use LangGraph Stagehand Agent SDKs
MCP CDP client WebSocket Custom CDP

Live debug view

03

Stream sessions live. Replay runs.
Share a link to the click that broke.

LIVE SESSION embed
run

Sessions that persist

04

Cookies, storage, and fingerprint persist across sessions. No re-login loops.

Thousands in parallel

05

Sub-agent browsers from one orchestrator. Geo-distributed across US, EU, Asia.

Any output format

06

Typed schemas, JSON, Markdown, screenshots, raw HTML.
Pick what your agent needs.

data.json 2.4k
page.md 812k
view.png 5.9m
raw.html 2.1m
Surfsky
you agent
Features

The CDP toolkit.
What your agent actually calls.

The harness exposes each capability as a CDP method. Call them directly, or let the SDK orchestrate them inside its run loop.

start_session

Antidetect Chromium with proxy, fingerprint, profile. Returns a CDP WebSocket.

act

Click, type, scroll, drag, hotkeys, upload. Works through iframes and shadow DOM.

humanize

browser-use, LangGraph, Stagehand, Claude/OpenAI Agent SDKs, MCP. Anything that speaks CDP. Drop in the URL.

solve_captcha

Antidetect Chromium with proxy, fingerprint, profile. Returns a CDP WebSocket.

switch_proxy

Click, type, scroll, drag, hotkeys, upload. Works through iframes and shadow DOM.

extract_typed

browser-use, LangGraph, Stagehand, Claude/OpenAI Agent SDKs, MCP. Anything that speaks CDP. Drop in the URL.

High Scores

The harness writes its own helpers. Your agent edits them as it goes.

First run on a new domain, the agent works out the flow once. The harness saves the working path as a per-domain helper. Future runs use it directly; the agent edits it when the site changes.

skills/
├── linkedin/
│   ├── login.py
│   ├── sales_nav_search.py
│   ├── send_inmail.py
│   └── connection_request.py
├── indeed/
│   ├── easy_apply.py
│   └── extract_listings.py
├── amazon/
│   ├── seller_central_login.py
│   ├── reprice.py
│   └── reply_to_message.py
└── stripe/
    ├── verify_card.py
    └── pull_payouts.py

Ship agents that
finish the task.

Tell us what you're automating. We'll get you set up.

Request Access