mrkeyoor.com_
Thu 17 Sept 09:13 UTC
AI Toolsevaluationupdated 26 Aug 2026

page-agent review

Page Agent is an English-documented TypeScript library that places a natural-language agent inside a web page; a Chinese README also exists. It reads a simplified text form of the DOM, asks a configured language model what to do, and can click or fill the interface without screenshots or a headless browser.

+34stars / 7d
Verdict

Our Page Agent build and tests passed, but npm audit reported 17 known vulnerabilities, including 3 critical and 9 high, so dependency review comes before embedding it in a signed-in application. Page Agent is a sharp choice for a copilot inside a web product you control because it works from the DOM and needs no remote browser. Use external Playwright or browser-use automation when the task spans arbitrary sites, runs unattended, or must stay outside application code.

We ran it

Lab card: what happened when we ran page-agentScreenshot of page-agent (alibaba.github.io/page-agent)
Install✓ · 45s735 packages · 412 MB
Build✓ · 24s
Tests✓ · 16sran, no count parsed
Known vulns173 critical · 9 high · 4 moderate · 1 low (npm audit)
Repo250 files~23,684 lines of source · 1.4 MB · 4 CI workflows

Answers from our run

Does page-agent build from source?

Dependencies installed in 45 seconds (735 packages), and the build succeeded in 24 seconds. We cloned commit d02db1e into a clean Debian container with 3 CPUs and no project-specific setup.

Do page-agent's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does page-agent have known vulnerabilities in its dependencies?

npm audit flagged 17 known advisories in the dependency tree, including 3 critical at the time of our run.

Who should not use page-agent?

Server-side scraping or unattended browser jobs: the README explicitly describes Page Agent as client-side web enhancement rather than server automation.

What are the alternatives to page-agent?

browser-use, Playwright MCP, Stagehand. Our Page Agent build and tests passed, but npm audit reported 17 known vulnerabilities, including 3 critical and 9 high, so dependency review comes before embedding it in a signed-in application.

Setup4/5One script for a trial; real use needs model and privacy setup
Docs4/5Clear library, extension, MCP, model, and privacy guidance
Community4/5Active interest and updates, with one primary maintainer
Maturity3/5Working library and extension; MCP and safeguards are still young

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.
Internal application developers automating repetitive forms without running a remote browser farm.
Chrome users who want cross-tab tasks through the optional extension.
MCP users willing to connect a local Node server, browser extension, and their own model endpoint.

Who it’s NOT for

Server-side scraping or unattended browser jobs: the README explicitly describes Page Agent as client-side web enhancement rather than server automation.
Sensitive pages whose visible text or form values cannot leave the browser: the privacy terms say cleaned HTML may retain sensitive information and is sent to the configured model provider.
Production users relying on the free demo model API: its terms limit it to technical evaluation and prohibit sensitive data.
Firefox or Safari extension users today: the roadmap leaves both browsers unchecked, and issue 673 separately requests Mozilla support.
High-stakes workflows that need a finished safety policy before an agent clicks: the public roadmap still lists safeguard and user-takeover work as unchecked.
Teams expecting fast maintainer review for a large customization: issue 349 says the project is maintained primarily by one person with limited resources.

Setup reality

Our run at commit d02db1e installed 735 npm packages in 45 seconds and used 412 MB. The build passed in 24 seconds, and the test command passed in 16 seconds. The supplied measurement does not include a test count. Npm audit found 17 known vulnerabilities: 3 critical, 9 high, 4 moderate, and 1 low.

The in-page library needs an OpenAI-compatible model endpoint, model name, and API key unless you use the evaluation-only demo API. The beta MCP path adds Node 20 or newer, Chrome, the Page Agent extension, an MCP client, and a local HTTP and WebSocket port.

The repository is a workspace monorepo with 250 files, about 23,684 source lines, and 4 CI workflow files. There is no root Dockerfile or tests directory. Production integration also needs content-security-policy compatibility and a decision about which page DOM may be sent to the model.

Page Agent runs inside the page it controls

Page Agent is JavaScript embedded in a web application. It reduces the page DOM to text, sends that structure and the user's instruction to a chosen language model, then acts on the interface. Because it works in the existing page, it does not need a Python service, screenshot model, or separate headless browser for a single-page task. That makes it well suited to adding a copilot to a product the team already owns.

The boundary is also restrictive. An in-page agent inherits the application's browser context and can manipulate only what its integration and extension expose. Our checkout contained 250 files and about 23,684 source lines, small beside a browser automation platform but still organized as a workspace monorepo. The README explicitly says the project targets client-side enhancement. Crawlers, scheduled scraping, and remote test fleets should use an external browser controller.

Text-based DOM control avoids screenshot dependence

Page Agent reasons over a simplified document structure rather than pixels. That can make buttons, inputs, labels, and accessible text cheaper for a language model to interpret, and it avoids screen-resolution differences. It is especially appealing in an internal ERP or CRM where the developers can improve labels and markup. A natural-language instruction can then operate the same controls a user sees.

DOM access does not guarantee correct actions. Hidden state, custom canvases, ambiguous labels, asynchronous updates, and prompt injection in page text can still confuse an agent. The repository has 4 CI workflow files, while the roadmap keeps safeguard and user-takeover items unchecked. Use allowlisted actions, visible previews, confirmation for destructive steps, and application permissions that limit what a mistaken click can change.

What happened when we ran it

We cloned commit d02db1e into an unprivileged Node 22 Debian container with 3 CPUs, 8 GB of RAM, and no secrets. The 1.4 MB checkout held 250 files and roughly 23,684 source lines. It is an npm-workspace monorepo with 4 CI workflow files. Our harness found no root Dockerfile and no root tests directory, though the configured test command was present and runnable.

Installation succeeded in 45 seconds. npm added 735 packages and used 412 MB on disk. The build completed in 24 seconds, and the test command completed successfully in 16 seconds. The measurement block does not provide the number of tests, so a pass count would be invented. These results show that the selected workspace commands worked in a fresh container.

Npm audit found 17 known vulnerabilities: 3 critical, 9 high, 4 moderate, and 1 low. Our measurement does not identify affected packages, reachable code paths, or available fixes. A team should inspect the full audit for the pinned version, separate development-only packages from browser-shipped dependencies, and confirm the final bundle. Passing tests do not cancel dependency advisories, particularly for code placed inside authenticated pages.

Model privacy is part of the integration

The normal setup brings an OpenAI-compatible base URL, model name, and API key. Page Agent itself has no hosted backend in bring-your-own-key mode. When a user starts a task, the extension sends the natural-language instruction and simplified page structure to the configured provider. The privacy document says this cleaned HTML can still contain visible text, form values, or other sensitive information.

The free testing API deserves a separate warning. It is limited to evaluation, may be rate-limited or discontinued, prohibits sensitive data, and processes requests through Alibaba Cloud infrastructure in Mainland China. The terms advise users in regions with strict localization rules against it. Production teams should choose their own compliant model endpoint, document what DOM content leaves the browser, and prevent the agent from reading pages outside the approved application scope.

The MCP server adds Chrome and a local bridge

The beta @page-agent/mcp package lets Claude Desktop, Copilot, Cursor, and other MCP clients ask the extension to operate browser tabs. It requires Node 20 or newer, Chrome, the Page Agent extension, and model credentials. The server uses stdio toward the agent client, then starts HTTP and WebSocket services on localhost, with port 38401 as the documented default. A hub tab connects the browser extension to that bridge.

The MCP surface exposes 3 tools: execute a task, read connection or busy status, and stop the running task. That is admirably narrow. It does not create a security sandbox. An MCP client can still cause real browser actions in signed-in tabs, and simplified page content goes to the selected model. Bind the bridge locally, guard the machine account, restrict extension access, and require confirmation before purchases, deletions, messages, or permission changes.

Browser coverage and maintenance are still limited

The optional extension handles multi-tab work in Chrome. The public roadmap marks Firefox and Safari extensions as pending decisions or unchecked work, and issue 673 requests Mozilla support. Do not describe that support as planned delivery. The checked item is access to all tabs; the remaining browser entries are aspirations in a work-in-progress roadmap. Teams with a browser mandate beyond Chrome need another controller today.

Release v1.12.2 arrived on July 16, 2026, and GitHub recorded a push on August 24. The repository showed 80 open issues and pull requests combined. Issue 349 says one primary maintainer has limited review capacity and asks contributors to discuss features first. Page Agent is active and unusually easy to embed, but its dependency audit, browser coverage, and unfinished safety work argue for a controlled copilot before broad autonomous access.

Alternatives

ProjectWhat it isPick it when
browser-use gh↗A Python browser-agent framework for controlling websites through an external browser session.pick this instead when automation should run outside the page and Python is the preferred control layer.
Playwright MCP gh↗An MCP server that exposes Playwright browser control through structured accessibility data.pick this instead when an agent client needs general browser automation without embedding code in the target application.
Stagehand gh↗A browser automation framework combining natural-language actions with Playwright code and browser infrastructure.pick this instead when repeatable external browser scripts and hosted execution matter more than an in-page copilot.

Sources

  1. Page Agent repository and README
  2. Page Agent v1.12.2 release
  3. Page Agent MCP server README
  4. Page Agent terms and privacy
  5. Maintainer note in issue 349
  6. Roadmap issue 272

More ai tools reviews

yolov5 · eve · MemOS · LongCat-Video · Concat · DLSS5-Feeder · the whole board →