2025-09-29 17:47:15 +08:00
# PageAgent 🤖🪄
2026-01-17 15:48:30 +08:00
<picture>
2026-01-17 15:57:22 +08:00
<source media="(prefers-color-scheme: dark)" srcset="https://img.alicdn.com/imgextra/i4/O1CN01qKig1P1FnhpFKNdi6_!!6000000000532-2-tps-1280-256.png">
<img alt="Page Agent Banner" src="https://img.alicdn.com/imgextra/i1/O1CN01NCMKXj1Gn4tkFTsxf_!!6000000000666-2-tps-1280-256.png">
2026-01-17 15:48:30 +08:00
</picture>
2025-09-29 16:33:15 +08:00
2026-01-17 14:59:09 +08:00
[](https://opensource.org/licenses/MIT) [](http://www.typescriptlang.org/) [](https://www.npmjs.com/package/page-agent) [](https://bundlephobia.com/package/page-agent) [](https://github.com/alibaba/page-agent)
2025-09-29 16:33:15 +08:00
2025-10-23 20:41:12 +08:00
The GUI Agent Living in Your Webpage. Control web interfaces with natural language.
2025-09-29 16:33:15 +08:00
🌐 **English** | [中文 ](./README-zh.md )
2026-01-10 23:53:19 +08:00
👉 <a href="https://alibaba.github.io/page-agent/" target="_blank"><b>🚀 Demo</b></a> | <a href="https://alibaba.github.io/page-agent/#/docs/introduction/overview " target="_blank"><b>📖 Documentation</b></a>
2025-09-29 16:33:15 +08:00
2026-01-17 15:17:14 +08:00
<video id="demo-video" src="https://github.com/user-attachments/assets/34d8444d-cbfb-44a3-a24e-fd5c167bb0bf" controls crossorigin muted></video>
2025-10-24 16:56:26 +08:00
2025-09-29 16:33:15 +08:00
---
## ✨ Features
2026-01-21 20:15:33 +08:00
- **🎯 Easy Integration**
- No python. No headless browser. No browser extension. Just in-page scripts.
2025-09-29 19:29:31 +08:00
- **🔐 Client-Side Processing**
2025-09-29 16:33:15 +08:00
- **🧠 DOM Extraction**
- **💬 Natural Language Interface**
- **🎨 UI with Human in the loop**
2026-01-21 20:15:33 +08:00
And 😉
2025-09-29 16:33:15 +08:00
2026-01-28 20:48:22 +08:00
- **🧪 `cross-page` control with an experimental chrome extension** - `packages/extension`
2026-01-21 20:15:33 +08:00
👉 [**🗺️ Roadmap** ](https://github.com/alibaba/page-agent/issues/96 )
2025-09-29 16:33:15 +08:00
## 🚀 Quick Start
2026-01-21 20:15:33 +08:00
### One-line integration
2026-01-14 17:27:35 +08:00
2026-01-21 20:15:33 +08:00
Fastest way to try PageAgent with our free Demo LLM:
2026-01-14 17:27:35 +08:00
```html
2026-01-17 14:59:09 +08:00
< script
2026-02-09 15:50:20 +08:00
src = "https://cdn.jsdelivr.net/npm/page-agent@1.1.1/dist/iife/page-agent.demo.js"
2026-01-17 16:15:36 +08:00
crossorigin = "true"
2026-01-17 14:59:09 +08:00
></ script >
2026-01-14 17:27:35 +08:00
```
2026-01-21 20:15:33 +08:00
> - **⚠️ For technical evaluation only.** Demo LLM has rate limits and usage restrictions. May change without notice.
> - **🌷 Bring your own LLM API.**
2026-01-14 17:27:35 +08:00
2026-01-23 00:55:58 +08:00
| Mirrors | URL |
| ------- | ---------------------------------------------------------------------------------- |
2026-02-09 15:50:20 +08:00
| Global | https://cdn.jsdelivr.net/npm/page-agent@1 .1.1/dist/iife/page-agent.demo.js |
| China | https://registry.npmmirror.com/page-agent/1.1.1/files/dist/iife/page-agent.demo.js |
2026-01-14 17:27:35 +08:00
2026-01-17 14:59:09 +08:00
### NPM Installation
2025-09-29 16:33:15 +08:00
```bash
npm install page-agent
```
```javascript
import { PageAgent } from 'page-agent'
const agent = new PageAgent ({
2026-01-17 16:15:36 +08:00
model : 'deepseek-chat' ,
baseURL : 'https://api.deepseek.com' ,
apiKey : 'YOUR_API_KEY' ,
language : 'en-US' ,
2025-09-29 16:33:15 +08:00
})
2025-10-22 16:30:37 +08:00
await agent . execute ( 'Click the login button' )
2025-09-29 16:33:15 +08:00
```
## 🏗️ Structure
2025-12-05 16:18:01 +08:00
PageAgent adopts a simplified monorepo structure:
2025-09-29 16:33:15 +08:00
```
2025-12-05 16:18:01 +08:00
packages/
2026-01-19 20:14:40 +08:00
├── core/ # ** Core agent logic without UI(npm: @page-agent/core) **
├── page-agent/ # Exported agent and demo(npm: page-agent)
2025-12-22 16:35:58 +08:00
├── llms/ # LLM client (npm: @page-agent/llms)
2026-01-13 17:33:38 +08:00
├── page-controller/ # DOM operations & Visual Mask (npm: @page-agent/page-controller)
├── ui/ # Panel & i18n (npm: @page-agent/ui)
2025-12-05 16:18:01 +08:00
└── website/ # Demo & Documentation site
2025-09-29 16:33:15 +08:00
```
## 🤝 Contributing
2026-01-21 20:15:33 +08:00
We welcome contributions from the community! Follow our instructions in [CONTRIBUTING.md ](CONTRIBUTING.md ) for environment setup and local development.
2025-09-29 16:33:15 +08:00
2026-01-21 20:15:33 +08:00
Please read [Code of Conduct ](CODE_OF_CONDUCT.md ) before contributing.
2025-09-29 16:33:15 +08:00
## 👏 Acknowledgments
2026-01-17 14:59:09 +08:00
This project builds upon the excellent work of ** [`browser-use` ](https://github.com/browser-use/browser-use )**.
2025-09-29 16:33:15 +08:00
2026-01-17 14:59:09 +08:00
`PageAgent` is designed for **client-side web enhancement** , not server-side automation.
2025-09-29 16:33:15 +08:00
2025-10-10 17:20:14 +08:00
```
2025-10-22 16:30:37 +08:00
DOM processing components and prompt are derived from browser-use:
2025-10-10 17:20:14 +08:00
Browser Use
Copyright (c) 2024 Gregor Zunic
Licensed under the MIT License
Original browser-use project: <https://github.com/browser-use/browser-use>
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.
Third-party dependencies and their licenses can be found in the package.json
file and in the node_modules directory after installation.
```
2025-09-29 16:33:15 +08:00
2026-01-17 14:59:09 +08:00
## 📄 License
[MIT License ](LICENSE )
2025-09-29 16:33:15 +08:00
---
** ⭐ Star this repo if you find PageAgent helpful!**