Simon ed71dd08b9 Merge pull request #181 from fancyboi999/fancy/fix-180-viewport-expansion
fix(page-controller): honor viewportExpansion in DOM extraction
2026-03-10 15:50:34 +08:00
2026-02-27 17:23:41 +08:00
2026-02-12 17:23:35 +08:00
2026-02-24 00:13:36 +08:00
2026-02-12 17:19:14 +08:00
2026-01-16 19:04:26 +08:00

Page Agent

Page Agent Banner

License: MIT TypeScript Downloads Bundle Size GitHub stars

The GUI Agent Living in Your Webpage. Control web interfaces with natural language.

🌐 English | 中文

👉 🚀 Demo | 📖 Documentation | 📢 Join HN Discussion


Features

  • 🎯 Easy integration
    • No need for browser extension / python / headless browser.
    • Just in-page javascript. Everything happens in your web page.
    • The best tool for your agent to control web pages.
  • 📖 Text-based DOM manipulation
    • No screenshots. No OCR or multi-modal LLMs needed.
    • No special permissions required.
  • 🧠 Bring your own LLMs
  • 🎨 Pretty UI with human-in-the-loop
  • 🐙 Optional chrome extension for multi-page tasks.

💡 Use Cases

  • SaaS AI Copilot — Ship an AI copilot in your product in lines of code. No backend rewrite needed.
  • 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 agent's reach across browser tabs with the optional chrome extension.

🚀 Quick Start

One-line integration

Fastest way to try PageAgent with our free Demo LLM:

<script src="{URL}" crossorigin="true"></script>
Mirrors URL
Global https://cdn.jsdelivr.net/npm/page-agent@1.5.4/dist/iife/page-agent.demo.js
China https://registry.npmmirror.com/page-agent/1.5.4/files/dist/iife/page-agent.demo.js

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

NPM Installation

npm install page-agent
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! Follow our instructions in CONTRIBUTING.md for environment setup and local development.

Please read Code of Conduct before contributing.

👏 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

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.

📄 License

MIT License


Star this repo if you find PageAgent helpful!

Star History Chart
Description
No description provided
Readme MIT 3.4 MiB
Languages
TypeScript 81.5%
JavaScript 11.7%
CSS 5.3%
HTML 1.2%
Python 0.3%