cac86f2fbfee68d494503fed241da9ee8974d9fa
refactor: Move DOM related logic to a new package(PageController)
PageAgent 🤖🪄
The GUI Agent Living in Your Webpage. Control web interfaces with natural language.
🌐 English | 中文
✨ 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
🚀 Quick Start
CDN Integration
<!-- temporary CDN URL. May change in the future -->
<script
src="https://hwcxiuzfylggtcktqgij.supabase.co/storage/v1/object/public/demo-public/v0.0.4/page-agent.js"
crossorigin="true"
type="text/javascript"
></script>
NPM Installation
npm install page-agent
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({
modelName: DEMO_MODEL,
baseURL: DEMO_BASE_URL,
apiKey: DEMO_API_KEY,
language: 'en-US',
})
await agent.execute('Click the login button')
🏗️ Structure
PageAgent adopts a simplified monorepo structure:
packages/
├── page-agent/ # AI agent (npm: page-agent)
│ ├── PageAgent # Agent main loop
│ ├── tools/ # LLM tool definitions
│ ├── ui/ # UI components & panels
│ └── llms/ # LLM integration layer
├── page-controller/ # DOM operations (npm: @page-agent/page-controller)
└── website/ # Demo & Documentation site
🤝 Contributing
We welcome contributions from the community! Here's how to get started:
Setup
- Fork the repository
- Clone your fork:
git clone https://github.com/alibaba/page-agent.git && cd page-agent - Install dependencies:
npm install - Start development:
npm start
Contributing Guidelines
Please read our Code of Conduct and Contributing Guide before contributing.
👏 Acknowledgments
This project builds upon the excellent work of:
PageAgent is designed for client-side web enhancement, not server-side automation.
📄 License
MIT License - see the 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: <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.
⭐ Star this repo if you find PageAgent helpful!
Languages
TypeScript
81.5%
JavaScript
11.7%
CSS
5.3%
HTML
1.2%
Python
0.3%
