MCPcopy
hub / github.com/alibaba/page-agent

github.com/alibaba/page-agent @v1.10.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.10.0 ↗
644 symbols 1,516 edges 171 files 100 documented · 16%
README

Page Agent

Page Agent Banner

License: MIT TypeScript Bundle Size Downloads GitHub stars

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

🌐 English | 中文

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

https://github.com/user-attachments/assets/a1f2eae2-13fb-4aae-98cf-a3fc1620a6c2


✨ 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
  • 🐙 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.
  • 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 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:

<script src="https://github.com/alibaba/page-agent/raw/v1.10.0/{URL}" crossorigin="true"></script>

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

Mirrors URL
Global https://cdn.jsdelivr.net/npm/page-agent@1.10.0/dist/iife/page-agent.demo.js
China https://registry.npmmirror.com/page-agent/1.10.0/files/dist/iife/page-agent.demo.js

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

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.

🌟 Awesome Page Agent

Built something cool with PageAgent? Add it here! Open a PR to share your project.

These are community projects — not maintained or endorsed by us. Use at your own discretion.

Project Description
Yours? Open a PR 🙌

🤝 Contributing

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

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 <https://github.com/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!

Extension points exported contracts — how you extend this code

LLMClient (Interface)
(no doc) [3 implementers]
packages/llms/src/types.ts
TreeNode (Interface)
* elementsToString 内部使用的类型
packages/page-controller/src/dom/index.ts
TabTool (Interface)
Tool definition compatible with PageAgentCore customTools
packages/extension/src/agent/tabTools.ts
PanelAgentAdapter (Interface)
(no doc) [1 implementers]
packages/ui/src/panel/types.ts
Window (Interface)
(no doc)
packages/page-agent/src/env.d.ts
AgentConfig (Interface)
(no doc)
packages/core/src/types.ts
ImportMetaEnv (Interface)
(no doc)
packages/website/src/env.d.ts
Message (Interface)
(no doc)
packages/llms/src/types.ts

Core symbols most depended-on inside this repo

cn
called by 54
packages/extension/src/lib/utils.ts
invoke
called by 35
packages/llms/src/types.ts
cn
called by 33
packages/website/src/lib/utils.ts
useLanguage
called by 24
packages/website/src/i18n/context.tsx
modelPatch
called by 21
packages/llms/src/utils.ts
execute
called by 21
packages/ui/src/panel/types.ts
t
called by 19
packages/ui/src/i18n/index.ts
escapeHtml
called by 13
packages/website/src/components/HighlightSyntax.tsx

Shape

Function 374
Method 152
Interface 86
Class 32

Languages

TypeScript100%

Modules by API surface

packages/ui/src/panel/Panel.ts38 symbols
packages/page-controller/src/dom/dom_tree/index.js23 symbols
packages/page-controller/src/PageController.ts22 symbols
packages/extension/src/agent/RemotePageController.ts22 symbols
packages/website/src/components/JSConsole.tsx20 symbols
packages/extension/src/agent/TabsController.ts20 symbols
packages/extension/src/entrypoints/hub/hub-ws.ts19 symbols
packages/core/src/PageAgentCore.ts18 symbols
packages/page-controller/src/dom/index.ts17 symbols
packages/website/src/components/ui/particles.tsx16 symbols
packages/extension/src/components/cards.tsx15 symbols
packages/page-controller/src/mask/SimulatorMask.ts14 symbols

Dependencies from manifests, versioned

@commitlint/cli21.0.1 · 1×
@commitlint/config-conventional21.0.1 · 1×
@eslint-react/eslint-plugin5.8.16 · 1×
@eslint/js10.0.1 · 1×
@microsoft/api-extractor7.58.8 · 1×
@modelcontextprotocol/sdk1.29.0 · 1×
@page-agent/core1.10.0 · 1×
@page-agent/llms1.10.0 · 1×
@page-agent/page-controller1.10.0 · 1×
@page-agent/ui1.10.0 · 1×
@radix-ui/react-hover-card1.1.16 · 1×
@radix-ui/react-icons1.3.2 · 1×

For agents

$ claude mcp add page-agent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact