Skyvern: Browser Automation That Sees the Page Instead of Parsing the DOM
Automate browser based workflows with AI. Automate Browser-based workflows using LLMs and Computer Vision Skyvern automates browser-based workflows using LLMs and computer vision.
At a glance
- What is it?
- Skyvern replaces XPath-based browser scripts with a swarm of LLM agents that read the page visually. This review covers how it works, how to run it, and where the trade-offs sit.
- Who is it for?
- Adopt Skyvern if you need to automate workflows across many unfamiliar websites and cannot keep rewriting XPath selectors. Skip it if your pages are static, your compliance team rejects AGPL-3.0, or you need deterministic behavior with no LLM cost.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The Problem: XPath Scripts That Break on Redesign
Traditional browser automation relies on DOM parsing and XPath-based interactions. A script that clicks a button by its XPath works until the website changes its layout, then it fails silently or throws a selector error. Skyvern's README states this directly: traditional approaches required custom scripts that would break whenever the website layouts changed. The project's answer is to stop depending on code-defined selectors entirely. Instead, it uses Vision LLMs to learn and interact with the website. That means the same workflow can run on a site the system has never seen before. The target user is someone who maintains automation for many sites, or who wants non-technical staff to build workflows without writing selectors.
How the Agent Swarm Works
Skyvern is built on a swarm of agents that comprehend a website, plan actions, and execute them. The README cites BabyAGI and AutoGPT as inspiration, but adds the ability to interact with the browser through Playwright. The system diagram in the repository shows multiple agents cooperating, though the README does not specify how many or what each one does. The key mechanism is visual: the model maps visual elements to actions. That is how it handles unfamiliar sites and layout changes. There are no pre-determined XPaths or selectors that the system looks for. This is a fundamental difference from scripted automation. The trade-off is that every action requires a vision model call, which costs money and adds latency. The README does not give latency or cost figures, so you should test with your own provider.
Running It: pip, Docker, and the SQLite Default
The quickest path is `pip install "skyvern[all]"` followed by `skyvern quickstart`. That defaults to a SQLite database at `~/.skyvern/data.db`, so you do not need Postgres or Docker for a local test. If you want Postgres, pass `--database-string=postgresql+psycopg://user:pass@host:5432/dbname` or let quickstart spin up a Postgres container. Docker Compose is the alternative: clone the repo, copy `.env.example` to `.env`, add your LLM API key, then run `docker compose up -d` and open http://localhost:8080. The README warns about a known bug in version 1.0.31 that causes a `table organizations already exists` error. The fix is to delete `~/.skyvern/data.db` and upgrade to 1.0.32 or later. If pip cannot resolve dependencies due to a litellm or fastmcp conflict, use `uv pip install skyvern` instead.
The SDK: Playwright Plus Four AI Commands
The Python SDK is a Playwright extension. You install it with `pip install skyvern` for the SDK and cloud API, or `pip install "skyvern[ui]"` if you only want the packaged UI for an existing API. The SDK adds four commands to the page object: `page.act(prompt)` for actions, `page.extract(prompt, schema)` for structured data extraction, `page.validate(prompt)` which returns a boolean, and a fourth command that the README truncates before naming. The `validate` command is notable because it gives you a simple pass or fail check, which is useful for assertions in a workflow. The `extract` command accepts a JSON schema, so you can get typed data out of a page. If you already know Playwright, the learning curve is shallow because you keep the same page object and add AI calls on top.
A Real Limitation: The Cloud Dependency and Anti-Bot Assumptions
The README promotes Skyvern Cloud as the managed option, bundling anti-bot detection mechanisms, a proxy network, and CAPTCHA solvers. That is a strong selling point, but it also reveals a limitation: self-hosted Skyvern does not promise those features. If you run locally, you are on your own against Cloudflare or reCAPTCHA. The README does not document how to configure proxies or CAPTCHA solving in the open-source version. Another limitation is that the entire approach depends on an LLM provider. You must supply an API key in `.env`, and every action is a model call. That means cost per workflow run is variable and potentially high for long workflows. The README gives no pricing or token estimates. If you need deterministic, low-cost automation for a fixed set of pages, Skyvern is likely the wrong tool.
Alternative: Playwright with Hand-Written Selectors
The direct alternative is plain Playwright without Skyvern. The difference is in approach: Playwright uses explicit locators, waits, and assertions that you write and maintain. It is deterministic, fast, and free of LLM costs. If your target sites are stable and few, hand-written Playwright scripts are more reliable and cheaper. Skyvern's advantage only appears when you face many sites or frequent layout changes. The README positions Skyvern as a replacement for brittle automation, but it does not claim to be faster or cheaper per action. It trades determinism for adaptability. For a small set of pages, the maintenance burden of XPath is low enough that Skyvern's complexity and cost are not justified. For a large portfolio of sites, the opposite is true.
Licence and Maintenance Cost
Skyvern is licensed under AGPL-3.0. That is a strong copyleft licence. If you embed Skyvern in a service you offer to users over a network, you may need to release your source code. This is a real consideration for commercial products. The README does not mention a commercial licence, so you should assume AGPL applies unless you negotiate separately. Maintenance cost is visible in the release cadence: versions 1.0.49, 1.0.50, and 1.0.51 were released within a week in August 2026. That indicates active development, but it also means frequent updates and potential breaking changes. The documented 1.0.31 bug shows that releases can have regressions. You will need to track releases and test upgrades. The README also mentions a TypeScript client, `@skyvern/client`, which adds another surface to maintain if you use it.
Editorial conclusion
Adopt Skyvern if you need to automate workflows across many unfamiliar websites and cannot keep rewriting XPath selectors. Skip it if your pages are static, your compliance team rejects AGPL-3.0, or you need deterministic behavior with no LLM cost. Before adopting, verify that your target sites do not block the bundled anti-bot measures, and test the SQLite quickstart path on your OS, since the README documents a known failure on version 1.0.31. Also confirm your LLM provider's pricing for high-volume runs, because every action in a workflow is a model call.
Community notes