alibaba /page-agent

JavaScript in-page GUI agent. Control web interfaces with natural language.

★ 29,656⑂ 2,641
TypeScriptCreated 2025-09-23alibaba.github.io/page-agent/
29,656
stars
+30+37
2,641
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

Page Agent


  
  











The GUI Agent Living in Your Webpage. One script gives any web page its own AI agent.



🌐 English | 中文

🚀 Demo | 📖 Docs | 📢 HN Discussion | 𝕏 Follow on X





---

 ✨ Features

- 🎯 Easy integration
    - No need for browser extension / python / headless browser.
    - Just in-page javascript. Everything happens in your web page.
- 📖 Text-based DOM manipulation
    - No screenshots. No multi-modal LLMs or special permissions needed.
- 🧠 Bring your own LLMs
    - Works with most mainstream models, including locally deployed ones. See supported models.
- 🐙 Optional chrome extension for multi-page tasks.
    - And an MCP Server (Beta) to control it from outside

 💡 Use Cases

- SaaS AI Copilot — Ship an AI copilot in your product in lines of code. No backend rewrite.
- Smart Form Filling — Turn 20-click workflows into one sentence. Perfect for ERP, CRM, and admin systems.
- Accessibility — Make any web app accessible through natural language. Voice commands, screen readers, zero barrier.
- Multi-page Agent — Extend your own web agent's reach across browser tabs via the Chrome extension.
- MCP - Allow your agent clients to control your browser.

 🚀 Quick Start

 One-line integration

Fastest way to try PageAgent with our free Demo LLM:

html






 ⚠️ For technical evaluation only. This demo CDN uses our free testing LLM API. By using it, you agree to its terms.

 Add ?autoInit=false to load the script without creating the demo agent automatically. You can then instantiate it with new window.PageAgent(...) and your own LLMs.

 NPM Installation

bash
npm install page-agent


javascript
import { PageAgent } from 'page-agent'

const agent = new PageAgent({
    model: 'qwen3.5-plus',
    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
    apiKey: 'YOUR_API_KEY',
    language: 'en-US',
})

await agent.execute('Click the login button')


For more programmatic usage, see 📖 Documentations.

 🤝 Contributing

We welcome contributions from the community! See CONTRIBUTING.md for guidelines and docs/developer-guide.md for local development workflows.

Built something cool with PageAgent? Share it in Show and Tell. 🙌

Please read the maintainer's note on principles and current state.

Contributions generated entirely by bots or AI without substantial human involvement will not be accepted.

 ⚖️ License

MIT License

 👏 Acknowledgments

This project builds upon the excellent work of browser-use.

PageAgent is designed for client-side web enhancement, not server-side automation.


DOM processing components and prompt are derived from browser-use:

Browser Use 
Copyright (c) 2024 Gregor Zunic
Licensed under the MIT License

We gratefully acknowledge the browser-use project and its contributors for their
excellent work on web automation and DOM interaction patterns that helped make
this project possible.


⭐ Star this repo if you find PageAgent helpful!

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON