An open-source AI GUI agent published by Alibaba Group. By adding a single script line to your own web page, you can automate GUI operations with natural-language instructions such as “click the login button” or “fill in this application form.” There is no need for a separate browser extension, headless browser, or Python runtime — everything runs as JavaScript inside the page the user is already viewing. It was released in September 2025 and has gathered close to 30,000 stars on GitHub. The license is MIT.
While most tools with a similar purpose are designed to drive a browser from the outside, PageAgent takes the idea of “an agent that lives inside the page.” That makes it a natural fit for embedding an AI copilot into your own SaaS product, or for automating data entry in internal business systems.
Key Features
- Install with one script tag: You can try it out just by loading the CDN script. For production use, install it as a package with
npm install page-agent, instantiate it with a model name, endpoint, and API key, and give instructions in natural language such asagent.execute('Click the login button') - Text-based DOM analysis, no screenshots: Instead of sending screen images to the model, it converts the DOM to text and interprets it. This works with models that are not multimodal, and helps keep bandwidth and token consumption down
- Works with a wide range of LLMs: It supports major models with an OpenAI-compatible endpoint (OpenAI, Claude, DeepSeek, Alibaba’s own Qwen, and others), as well as locally run models via Ollama. The choice of model is up to whoever embeds it
- Multi-page operation via the Chrome extension: In addition to the in-page core functionality, installing the official Chrome extension enables tasks that span multiple pages and tabs
- MCP server (Beta): External AI clients can drive the browser through the Model Context Protocol. This is useful for letting an agent such as Claude Code operate a page that is already open
- Builds on browser-use: The project states that part of its DOM processing and prompts are derived from the browser-use project, which is also MIT licensed
Pricing
| Plan | Price | What’s included |
|---|---|---|
| Open-source version | Free (MIT license) | All features. Available via npm or CDN |
| Demo CDN API | Free | A test API for trying it out, limited to technical evaluation |
| LLM usage | Separate | Pay-as-you-go with the model provider you connect to (OpenAI, Anthropic, DeepSeek, and so on). Free if you use a local model |
Pricing is current as of August 2026. Please check the official site for the latest information.
PageAgent itself has no paid plan. The real cost comes down to which LLM you call and how often. If you point it at a local Ollama instance, you can run it at zero cost.
Pros & Cons
✅ Pros
- Lightweight to adopt. You can start with a single script tag, so the barrier to evaluation is low
- Because it runs inside the page, it can operate an already-authenticated session or an internal system screen as-is. There is no need to launch a separate browser process and log in again
- You can choose your model. Switching to a cheaper model for cost, or a local model for confidentiality, is just a configuration change
- Since it does not use screenshots, it is cheaper to run than vision-model approaches
- Fully open source under the MIT license, with few restrictions on commercial use or modification
⚠️ Cons
- It is a developer-facing library, not a product you can use without writing code. Adoption requires embedding it in your page yourself
- It is designed to enhance the client-side web experience, and is not intended as a server-side batch automation or scraping platform
- Because it analyzes the DOM as text, it struggles with canvas-based or image-only UIs and with elements whose information never appears in the DOM
- In a setup where the API key sits in the frontend, the key is exposed. For production you need to design how keys are handled, for example by routing calls through your own proxy
- The MCP server is still in Beta, so the specification may change
- The risk that the LLM misreads the target of an operation remains. It is not suited to unconditionally delegating irreversible actions such as submitting, paying, or deleting
Comparison with Similar Services
| Item | PageAgent | browser-use | Playwright MCP | Midscene.js |
|---|---|---|---|---|
| Provider | Alibaba Group | browser-use (OSS project) | Microsoft | ByteDance (web-infra-dev) |
| Where it runs | Inside the page being viewed (JavaScript) | Controls the browser from an external process | Controls the browser from an external process | External control (used with Playwright, Puppeteer, etc.) |
| Main language | JavaScript / TypeScript | Python | Various MCP clients | JavaScript / TypeScript |
| How it reads the screen | DOM converted to text | DOM (visual input also possible) | Accessibility tree | Assumes a vision model |
| Primary use | Embedding an AI copilot in your own site | General-purpose browser automation | Browser control from an AI agent | UI testing and automation |
| License | MIT | MIT | Open source | Open source |
The dividing line is straightforward: use browser-use or Playwright MCP when you want to drive a browser from the outside, and PageAgent when you want to ship AI-driven operation inside your own product.
Who Is It For
- Web developers who want to embed an AI copilot into their SaaS or admin screens so users can operate them by talking to them
- IT staff who want to reduce the effort of filling in form-heavy internal systems without rebuilding the screens
- Teams who want to add natural-language operation as an accessibility improvement for users who find mouse operation difficult
- Developers in environments where confidential data cannot leave for an external API and everything must run on a local LLM
- Anyone who wants to let an AI agent on their machine operate an open page via MCP
Summary
PageAgent answers the familiar theme of “letting AI operate a browser” not by controlling it from the outside, but by placing the agent inside the page. Its strengths are how lightly it can be adopted — one script line is enough to try it — and the freedom to pick your own model, which makes it a strong option when embedding into your own product is the goal. On the other hand, it assumes you will write code, and the text-based DOM approach has areas it is not good at. A sensible starting point is to apply the demo CDN to a page of your own and check whether it can reliably operate the UI you care about.