An in-page JavaScript GUI agent that enables natural language control of web interfaces via a single script, operating directly on the DOM without requiring browser extensions, Python, or headless browsers.
Project overview
An in-page JavaScript GUI agent that enables natural language control of web interfaces via a single script, operating directly on the DOM without requiring browser extensions, Python, or headless browsers.
Project type
MCP · AI Agent
Use cases
Automation
Deployment
Refer to project documentation
License
MIT
Best for
Developers seeking to add natural language control to web interfaces without headless browsers or backend rewrites.
Projects requiring text-based DOM manipulation instead of screenshot or multi-modal LLM processing.
Key capabilities
Embeds a GUI agent directly into a web page using JavaScript to control web interfaces with natural language.
Interacts with the webpage through text-based DOM processing without relying on screenshots or multi-modal LLMs.
Provides an optional Model Context Protocol (MCP) Server (Beta) to control the agent from external clients.
Offers an optional Chrome extension to enable multi-page task automation across browser tabs.
Limitations and risks
Limited to a single page by default without the optional Chrome extension.
The free Demo LLM CDN is provided for technical evaluation only and may have usage terms.
Integration requires coding to install and configure the library with LLM credentials.
Getting started
Install via npm (npm install page-agent) or use a CDN script tag, then import and instantiate PageAgent with LLM credentials.
Evidence and sources
GitHub project description: JavaScript in-page GUI agent. Control web interfaces with natural language.
README: - **🎯 Easy integration** - No need for `browser extension` / `python` / `headless browser`. - Just in-page javascript. Everything happens in your web page. - **📖 Text-based DOM ma…
README: SaaS AI Copilot — Ship an AI copilot in your product in lines of code. No backend rewrite.
README: import { PageAgent } from 'page-agent' const agent = new PageAgent({ model: 'qwen3.5-plus',
README: Fastest way to try PageAgent with our free Demo LLM: