# PageAgent π€πͺ

[](https://badge.fury.io/js/page-agent) [](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)
The GUI Agent Living in Your Webpage. Control web interfaces with natural language.
π **English** | [δΈζ](./README-zh.md)
π π Demo | π Documentation
---
## β¨ Features
- **π― Easy Integration** - Transform your webpage into an agent with a single script tag.
- **π Client-Side Processing**
- **π§ DOM Extraction**
- **π¬ Natural Language Interface**
- **π¨ UI with Human in the loop**
## πΊοΈ Roadmap
π [**Roadmap**](https://github.com/alibaba/page-agent/issues/96)
## π Quick Start
### NPM Installation
```bash
npm install page-agent
```
```javascript
import { PageAgent } from 'page-agent'
// test server
// @note: rate limit. prompt limit. Origin limit. May change anytime. Use your own llm!
// @note Using official DeepSeek-chat(3.2). Go to DeepSeek website for privacy policy.
const DEMO_MODEL = 'PAGE-AGENT-FREE-TESTING-RANDOM'
const DEMO_BASE_URL = 'https://hwcxiuzfylggtcktqgij.supabase.co/functions/v1/llm-testing-proxy'
const DEMO_API_KEY = 'PAGE-AGENT-FREE-TESTING-RANDOM'
const agent = new PageAgent({
model: DEMO_MODEL,
baseURL: DEMO_BASE_URL,
apiKey: DEMO_API_KEY,
language: 'en-US',
})
await agent.execute('Click the login button')
```
### CDN Integration
Fastest way to try PageAgent is to include it via CDN. Demo model will be used by default.
| Location | URL |
| -------- | ----------------------------------------------------------------------------- |
| Global | https://cdn.jsdelivr.net/npm/page-agent@latest/dist/umd/page-agent.js |
| China | https://registry.npmmirror.com/page-agent/latest/files/dist/umd/page-agent.js |
```html
```
## ποΈ Structure
PageAgent adopts a simplified monorepo structure:
```
packages/
βββ page-agent/ # AI agent (npm: page-agent)
βββ llms/ # LLM client (npm: @page-agent/llms)
βββ page-controller/ # DOM operations & Visual Mask (npm: @page-agent/page-controller)
βββ ui/ # Panel & i18n (npm: @page-agent/ui)
βββ cdn/ # CDN IIFE builds (npm: @page-agent/cdn)
βββ website/ # Demo & Documentation site
```
## π€ Contributing
We welcome contributions from the community! Here's how to get started:
### Setup
1. Fork the repository
2. Clone your fork: `git clone https://github.com/alibaba/page-agent.git && cd page-agent`
3. Install dependencies: `npm install`
4. Start development: `npm start`
### Contributing Guidelines
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) and [Contributing Guide](CONTRIBUTING.md) before contributing.
## π Acknowledgments
This project builds upon the excellent work of:
- **[browser-use](https://github.com/browser-use/browser-use)**
PageAgent is designed for **client-side web enhancement**, not server-side automation.
## π License
MIT License - see the [LICENSE](LICENSE) file for details.
```
DOM processing components and prompt are derived from browser-use:
Browser Use
Copyright (c) 2024 Gregor Zunic
Licensed under the MIT License
Original browser-use project:
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.
```
---
**β Star this repo if you find PageAgent helpful!**