seoder

Browser agents, and what they decide for you

Six tools that read the page and choose the next click themselves, instead of running the clicks you wrote. The model in the loop is the feature and the bill, so each row names both.

  • Browser Use

    Free tier, then paid · MIT · Python

    A Python library that gives a language model a browser and a list of actions, then lets the model pick the next one from what the page currently shows.

    Suits
    The widest adoption in this category by a long way, which means most failure modes are already someone else's filed issue rather than your afternoon. It runs against a local Chrome or a hosted browser, with whichever model you have a key for.
    Does not suit
    The model chooses each step, so the path, the token count and the wall clock time all change between runs of the same task. The project says plainly that no browser configuration guarantees a CAPTCHA gets avoided or solved, which is the honest version of a claim the category usually overstates.
  • Stagehand

    Open source · MIT · TypeScript

    Browserbase's SDK, which adds three model-driven calls, act, extract and observe, to a script you otherwise write as ordinary Playwright.

    Suits
    You decide line by line which steps need a model. The stable parts stay plain selectors that run fast and cost nothing, and only the fragile step pays for inference. Ships for TypeScript, Python and Go.
    Does not suit
    It is not a loop. Nothing here plans a sequence for you, so a task that has to work out its own order needs that written around it. The documented path assumes Browserbase browsers and a model key, so the free part is the code rather than the run.
  • Skyvern

    Open source · AGPL-3.0 · Python

    An agent that reads a page through vision models alongside the DOM, built around repeatable workflows rather than one-off prompts, with loops, validation steps and extraction against a JSON schema.

    Suits
    Reading the rendered page instead of a selector path survives the layout edits that break an XPath weekly. Workflows make a run reviewable as a sequence of named blocks rather than a transcript you read afterwards.
    Does not suit
    AGPL-3.0, which plenty of legal teams refuse for anything modified and run as a service. Anti-bot handling is a managed cloud feature and not in the open source build, so the version you can self-host is the weaker one on exactly the sites that fight back.
  • Notte

    Free tier, then paid · Python

    A Python framework that runs a full agent loop over a browser, with a hosted API supplying the sessions, proxies, captcha handling and a vault for credentials.

    Suits
    Scripted steps and model-driven steps sit in the same run, so a flow can be fixed code where it is stable and agentic only at the step that keeps moving. Credentials go in a vault rather than into a prompt.
    Does not suit
    The Server Side Public License is not an OSI open source license and will not survive some legal reviews for self-hosting, whatever the repository looks like from outside. The reliability figures on the site come from its own evaluation set.
  • Spider Browser

    Open source · MIT · TypeScript

    An SDK for a hosted browser that takes written steps and model-driven ones in the same session. goto and click run as you wrote them. act, extract and observe hand the decision to a model, and an agent call runs a whole task under a round limit you set.

    Suits
    One session takes both kinds of step, so a flow stays plain navigation until the screen that keeps moving. Its scrape call takes no selectors, no schema and no prompt, running a model server-side to name the fields, which is structured output without a model key of your own. Published for TypeScript, Python, Rust and Go.
    Does not suit
    The MIT repository is the client, not the browser. Every run is a session on the vendor's cloud behind an API key, so nothing here runs on your hardware, and act and the agent loop still need your own key for OpenAI, Anthropic or an OpenRouter-compatible endpoint. Exit locations are a fixed list of countries rather than anywhere you name, and the per-page cost the README quotes links to the vendor's own benchmark repository.
  • Airtop

    Free tier, then paid

    A hosted service aimed at work inside applications you have to log in to, turning a described workflow into an agent that runs on a schedule.

    Suits
    Authenticated sessions are the product rather than a feature bolted on, so signing in once and reusing that state across scheduled runs is the normal path. It publishes SOC 2 Type II and HIPAA compliance, which is what a procurement review asks for first.
    Does not suit
    Nothing is open source and nothing runs on your hardware, so an agent that signs in for you means your credentials live with the vendor, which some environments will refuse outright. Billing is in credits rather than sessions or hours, so a workload maps to a bill only after you run it.

The line between this list and browser APIs

A browser API hands you a browser and you write the clicks. A browser agent takes a sentence and writes the clicks itself, while the page is open, from whatever it can see. The tools on the browser API list do not care what your script is for. The tools here need to know the goal, because the goal is their input.

That difference decides the failure mode more than anything on a pricing page. A script fails the same way every time and you fix it once. An agent fails differently each run, and the fix is a prompt change whose effect you can only measure by running it again.

What the loop costs

Every step is a round trip. The agent reads the page, sends some representation of it to a model, waits, gets an action back, performs it, then reads the page again. A login that a script does in four instructions might take an agent nine of those round trips, and each one carries page content as input tokens.

Two things make the bill hard to predict. The step count is decided at run time, so the same task varies between runs. And the input size depends on the page, so a dense search results page costs more per step than a form. This is why the tools here that let you mix fixed code with model calls, Stagehand, Notte and Spider Browser, are cheaper to run than a pure loop on any flow that is mostly stable.

Navigation, pagination and form fills that do not change belong in code, where they run in milliseconds and cost nothing per page. Save the model for the step that keeps moving.

Where an agent is the right answer

A flow behind a login with no API, where the alternative is maintaining selectors for software you do not control. A long tail of sites where the same task has a different shape on each one, so no single script covers it. A one-off extraction where writing the script costs more than running the agent twice.

Each of those is either an unstable target or work you will not repeat. On a stable target you are paying for inference to reach a result a selector already reached.

Where they break

They break on the same things that break a script, and then on some new ones. A block is still a block: the decision comes from the TLS handshake and the address, both settled before any model reads the page. See 403 for what that looks like when it happens.

The new failure is quieter. An agent that cannot find the button sometimes reports success anyway, because it took an action, the page changed, and nothing in the loop knows the change was wrong. A script that cannot find the button throws. Any agent running unattended needs a check on the result that does not come from the agent.

Browser automation APIs covers the layer underneath: the libraries and hosted browsers these agents drive, where you write the clicks and nothing is decided at run time. Scraping APIs covers services that return a page or extracted fields without an agent in the loop. Open source projects lists the licenses, which is where AGPL and SSPL entries here become a real decision.

Questions

When is an agent worse than a script?

On any target that holds still. If a selector has worked for a month it will probably work tomorrow, it runs in milliseconds, it costs nothing per page and it fails loudly when the markup changes. An agent on the same page pays for inference on every run and can take a different path each time.

Why does the same task cost a different amount every run?

Because the number of steps is decided at run time. The model sees the page, picks an action, sees the result and picks again, so a login that takes four steps today can take nine when a consent dialog appears. Budget by the worst run you have seen, not the average.

Do agents get blocked less than scripts?

No, and several of these pages imply otherwise. Blocking decisions are made from the TLS handshake, the header order and the address, all of which are set before any model sees the page. An agent changes what happens after the response arrives, not whether the response arrives.

Should I trust the success rates on these sites?

Only as a starting point. Each vendor runs its own task set, scores its own runs and publishes the number, and the tasks that a given design handles well tend to be the tasks in the set. Rerun the comparison on ten of your own URLs before it decides anything.