Skip to main content
For complete API details and TypeScript definitions, see the API Reference.

What is ABP?

ABP is a protocol for exposing browser capabilities to AI agents through a standardized API. Instead of agents manipulating UI elements (clicking buttons, filling forms), apps expose a programmatic interface that agents call directly. Traditional automation:
With ABP:

Core Concepts

1. Capabilities

A capability is a discrete browser feature exposed through ABP. Examples:
  • convert.markdownToHtml — Convert markdown to HTML
  • render.canvas — Render graphics on a browser canvas
  • ai.summarize — Summarize text using browser AI APIs
  • auth.getUser — Get current user info from an authenticated session
  • export.pdf — Generate PDF from HTML
Each capability has:
  • Name (dot-notation namespace)
  • Input schema (JSON Schema defining parameters)
  • Output schema (JSON Schema defining return data)
  • Availability (can it be used right now?)
  • Requirements (what conditions must be met)

2. Sessions

A session is a connection between an agent and an ABP app. Sessions have a lifecycle:
During initialization, the agent and app negotiate:
  • Protocol version
  • Available capabilities
  • Supported features (notifications, progress, elicitation)

3. Manifest

A manifest is a JSON file that describes the app and its capabilities. It’s used for discovery — agents can check if an app supports ABP and what it offers before launching a browser.

4. Transport

The transport is how messages flow between agent and app. ABP supports:
  • Puppeteer/Playwright — Browser automation via page.evaluate()
  • postMessage — Iframe embedding
  • WebSocket — Remote connections
The protocol is transport-agnostic.

How It Works

The ABP Interface

Every ABP-compliant app exposes a window.abp object with this interface:

Capabilities

Capability Definition

Calling Capabilities

Session Lifecycle

Initialize

Shutdown

Apps should clean up resources (event listeners, timers, etc.) on shutdown.

Message Flow

ABP supports bidirectional communication:

Agent to App

  • initialize() — Start session
  • call() — Execute capability
  • cancel() — Cancel long operation
  • shutdown() — End session
  • Elicitation responses

App to Agent

  • Notifications — One-way updates (state changed, capabilities changed)
  • Progress — Progress updates for long operations
  • Elicitation — Request input from agent/user

Example: Progress Reporting

Example: Elicitation

Discovery

Before launching a browser, agents can check if an app supports ABP:
1

Fetch HTML Head

2

Parse Manifest Link

3

Fetch Manifest

See Discovery & Manifest for complete details.

Transport Options

Puppeteer/Playwright

Most common for AI agent integration:
Most capabilities work in headless mode. Some capabilities require headful mode (headless: false) for full access (authenticated sessions, GPU rendering, etc.).

postMessage (Iframe Embedding)

For embedding ABP apps in other web pages:

WebSocket (Remote Connections)

For remote ABP apps:

Next Steps

Common Pitfalls

Critical mistakes to avoid — read before implementing

Conformance Requirements

Minimum requirements for compliance

Building ABP Apps

Step-by-step guide to building an ABP app

MCP Bridge Quick Start

Get started with the MCP Bridge

API Reference

Complete API specification

Examples & Tutorials

Working code examples