mrkeyoor.com_
Sun 01 Nov 13:04 UTC
AI Toolsevaluationupdated 29 Sept 2026

page-agent review

Page Agent is an English-documented TypeScript library that puts a natural-language operator inside a web page. Chinese documentation is also available. It turns the page DOM into text for a language model, then clicks, types, selects, or scrolls without taking screenshots or starting a separate headless browser.

+42stars / 7d
Verdict

Our Page Agent run installed 742 packages and used 460 MB, then passed its build and all 4 tests, while npm audit still found 4 high-severity advisories. Use it for a copilot inside a web product you control, especially when the interface has clean semantic HTML. Choose an external browser controller when the job spans arbitrary sites, runs unattended, or depends on visual content.

We ran it

Lab card: what happened when we ran page-agentScreenshot of page-agent (alibaba.github.io/page-agent)
Install✓ · 35s742 packages · 460 MB
Build✓ · 31s
Tests✓ · 12s4 passed · 0 failed of 4 (vitest)
Known vulns50 critical · 4 high · 1 moderate · 0 low (npm audit)
Repo252 files~23,738 lines of source · 1.4 MB · 4 CI workflows

Answers from our run

Does page-agent build from source?

Dependencies installed in 35 seconds (742 packages), and the build succeeded in 31 seconds. We cloned commit 9eb6b66 into a clean Debian container with 3 CPUs and no project-specific setup.

Do page-agent's tests pass?

Yes. The project's own test command finished in 12 seconds and reported 4 passed, 0 failed (vitest).

Does page-agent have known vulnerabilities in its dependencies?

npm audit flagged 5 known advisories in the dependency tree at the time of our run.

Who should not use page-agent?

Server-side scraping or unattended browser jobs: the README says Page Agent is for client-side web enhancement.

What are the alternatives to page-agent?

browser-use, Playwright MCP, Stagehand. Our Page Agent run installed 742 packages and used 460 MB, then passed its build and all 4 tests, while npm audit still found 4 high-severity advisories.

Setup4/535-second install, though production needs a model and privacy policy
Docs4/5Clear limits, extension, MCP, model, and privacy guidance
Community4/529,263 stars and a September 28 push, but one main maintainer
Maturity3/5Build and 4 tests pass; MCP is beta and audit finds 5 advisories

Discussed on

  1. hnShow HN: PageAgent, A GUI agent that lives inside your web app147 points
  2. hnPage-Agent.js: The GUI Agent Living in Your Webpage3 points

Who it’s for

SaaS teams adding a natural-language copilot to pages they own.
Developers modernizing an internal CRM, ERP, or admin screen with semantic HTML.
Chrome users who need optional multi-tab control through the Page Agent extension.
MCP users willing to connect a local Node server, a browser extension, and their own model endpoint.

Who it’s NOT for

Server-side scraping or unattended browser jobs: the README says Page Agent is for client-side web enhancement.
Interfaces built around Canvas, WebGL, visual-only cues, or cross-origin frames: the limitations page says DOM-only control cannot interpret them.
Sensitive pages whose visible text or form values cannot reach an outside model: the privacy terms say cleaned HTML may retain both.
Production users depending on the free demo model API: its terms restrict it to technical evaluation and prohibit sensitive data.
Teams expecting one maintainer to review a large custom feature quickly: issue 349 says the project is maintained primarily by one person with limited review capacity.

Setup reality

Our sandbox installed commit 9eb6b66 in 35 seconds, adding 742 packages and using 460 MB. The build passed in 31 seconds. Vitest finished in 12 seconds with 4 passed and 0 failed. Npm audit reported 5 known vulnerabilities: 4 high and 1 moderate.

The in-page library needs a model name, an OpenAI-compatible base URL, and an API key unless you use the evaluation-only demo service. The beta MCP route also needs Chrome, the Page Agent extension, a local agent client, and model credentials.

The 1.4 MB checkout contained 252 files and about 23,738 source lines. It is an npm-workspace monorepo with 4 CI workflow files, no Dockerfile, and no tests directory. The development guide requires Node 22.13 or newer, or Node 24, plus npm 11.

It belongs inside a web product you control

Page Agent is a JavaScript operator embedded in the application it controls. It reduces the DOM to text, sends that structure and a user's instruction to a configured language model, then acts on the existing controls. A team can add a copilot to a CRM or admin panel without standing up a Python service or a separate headless browser. That is the useful distinction: Page Agent changes the product experience, while most browser agents sit outside the product.

The boundary matters as much as the convenience. The README calls this client-side web enhancement, not server automation. Scheduled scraping, remote test fleets, and jobs across sites you do not own are better handled by Playwright, browser-use, or a similar external controller. The repository is still substantial for an embedded feature: our checkout held 252 files and about 23,738 source lines in a workspace monorepo.

DOM-only control cannot see Canvas or cross-origin frames

Page Agent does not send screenshots to a multimodal model. It works from simplified page structure, so labels, buttons, inputs, and accessible names carry the task. That is a good match for a semantic internal application where the development team can repair vague labels. It is a poor match for a drawing tool, a map built on Canvas, or an interface whose instructions exist only as icons and color.

The project's limitations page is refreshingly direct. Images, SVG, Canvas, and WebGL are not understood as visual content. Nested and cross-origin iframes are outside the supported boundary, as are drag-and-drop, right-click menus, and editors such as Monaco that need access through their JavaScript instance. The 4 CI workflow files do not change those product limits. Better markup helps the agent, but it cannot turn a pixel surface into a readable DOM.

What happened when we ran it

Our sandbox installed commit 9eb6b66 in 35 seconds, bringing in 742 npm packages and occupying 460 MB on disk. The unprivileged container had 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The build completed successfully in 31 seconds. Vitest then finished in 12 seconds with 4 tests passed and 0 failed.

The run covered repository mechanics, not task accuracy. We did not supply a model key or ask the agent to operate a live application, so the successful 4-test suite does not tell you how often it chooses the correct button on your interface. The checkout itself was 1.4 MB, and our scan found no Dockerfile or tests directory. That is consistent with an npm package and browser extension, but buyers should notice how thin the automated test count is.

Npm audit reported 5 known vulnerabilities: 4 high and 1 moderate, with no critical or low findings. The supplied result does not name the packages, say whether they ship in the browser bundle, or prove that an affected path is reachable. Investigate the advisories before rollout. A passing 31-second build and 4 green tests do not answer the dependency question.

Cleaned HTML can still carry form values to the model

Bring-your-own-key mode has no Page Agent backend. The browser talks to the model endpoint you configure, and the extension stores its settings locally. Yet the privacy document warns that cleaned HTML can retain visible text, form values, or other sensitive material. For an authenticated finance or support page, that makes the model provider and the page scope part of the security design.

The free testing API is only for evaluation. Its terms prohibit sensitive data, offer no availability guarantee, and say requests are processed through Alibaba Cloud infrastructure in Mainland China. A production team should use its own compliant endpoint, restrict which elements the agent may touch, and require confirmation before destructive actions. The quick trial took our box 35 seconds to install. Deciding which DOM content may leave the browser will take longer.

The beta MCP route adds 3 tools and a Chrome hub

The @page-agent/mcp package lets a local agent client send browser tasks through the optional Chrome extension. It exposes 3 tools: execute a task, check connection or busy status, and stop the current task. The server speaks stdio to the MCP client, starts a local HTTP and WebSocket bridge, and asks the extension to open a hub tab. Model credentials remain part of that setup.

This route widens the trust boundary. A connected agent can act inside signed-in tabs, and the extension documentation says its broad page, navigation, and multi-tab permissions could harm privacy if abused. The extension therefore uses a token that the user must share with trusted applications. The 460 MB development install is measurable. Permission design is application-specific, so test it with a low-privilege account before connecting a daily browser profile.

A September 28 push shows activity, with one maintainer setting limits

GitHub showed 29,263 stars and 97 open issues and pull requests on September 29, 2026. The API split that combined figure into 44 issues and 53 pull requests. The repository was pushed on September 28, and release v1.12.4 shipped on September 6. Those dates show an active project rather than one coasting on an old release.

Issue 349 supplies the qualification: the author says he maintains Page Agent primarily on his own and asks contributors to discuss features before coding them. Our run found a clean build, 4 passing tests, and a manageable 35-second install. The reason to choose Page Agent is narrower than its star count suggests: you own the page, its DOM is readable, and an embedded copilot is preferable to an outside browser robot.

Alternatives

ProjectWhat it isPick it when
browser-use gh↗A Python framework that controls websites from an external browser session.pick this instead when automation should run outside the target page and Python is your control layer.
Playwright MCP gh↗An MCP server that gives agents general browser control through Playwright.pick this instead when an agent client must operate arbitrary sites without embedding a library in each one.
Stagehand gh↗A TypeScript browser automation SDK combining natural-language actions with Playwright code.pick this instead when repeatable external scripts and hosted browser execution matter more than an in-page copilot.

Sources

  1. Page Agent repository and README
  2. Page Agent v1.12.4 release
  3. Page Agent limitations
  4. Page Agent MCP server README
  5. Page Agent terms and privacy
  6. Maintainer note in issue 349
  7. Page Agent measured commit

More ai tools reviews

anarlog · pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · the whole board →