Plasmate
Plasmate is a browser engine for AI agents that compiles HTML into a Semantic Object Model (SOM), a structured JSON representation LLMs can reason about directly. It solves the problem of agents needing clean, structured web content instead of raw HTML/DOM, and is for developers building AI agent pipelines, web automation, and MCP-based tools.
✨ Key features
- Compiles HTML into structured Semantic Object Model (SOM) JSON
- Embeds V8 JavaScript engine for full page execution
- Native MCP and AWP protocols for agent integration
- CDP server for Puppeteer compatibility
- Provides CLI, Rust crate, npm and PyPI SDKs
- Includes tools for crawling, ARD discovery, and session tracing
🎯 Use cases
- Fetching web pages and extracting structured content for LLM processing
- Building AI agents that can browse and interact with websites via MCP
- Running Puppeteer workflows against a lightweight CDP server
- Crawling sites with robots.txt policy evaluation
- Automating stateful workflows with supervised agent-run plans
📦 Installation
🧰 Requirements: Requires a host with Rust installed for cargo install, or a Unix-like shell for the curl installer; no API keys needed.
curl -fsSL https://plasmate.app/install.sh | sh
Or install the native engine with Cargo:
cargo install plasmate
The npm and PyPI packages named plasmate are client SDKs; they do not bundle or install the native plasmate executable. Install the native engine first, then add npm install plasmate or pip install plasmate to applications that need the corresponding SDK.
🚀 Usage
plasmate fetch https://news.ycombinator.com
Returns SOM JSON: structured regions, interactive elements with stable IDs, and content.
⚠️ Good to know
The README notes that SOM output size and tokenization are page-, configuration-, serialization-, and tokenizer-dependent, and that historical byte ratios are observational, not universal claims.
❓ FAQ
What is the Semantic Object Model (SOM)?
SOM is a structured representation of a web page that strips layout, styling, scripts, and boilerplate, keeping structure, content, and interactive elements with stable IDs for agents.
Does Plasmate execute JavaScript?
Yes, Plasmate embeds V8 and executes page JavaScript, including inline/external scripts, fetch/XHR, timers, DOM mutations, and events, capturing JS-rendered content.
How can I use Plasmate with Puppeteer?
Start a CDP server with plasmate serve --protocol cdp --host 127.0.0.1 --port 9222 and connect using puppeteer-core with the browserWSEndpoint.
What is the difference between the native engine and the npm/PyPI packages?
The npm and PyPI packages named plasmate are client SDKs; they do not bundle the native executable. You must install the native engine first via the installer or cargo.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.