Blog

A dark slide titled ‘Per-action approval for browser agents’ showing a list of four action ids, with three approved in green and delete_account denied in red.
approve-actions-not-sites


4

min read

Diagram of one approved website containing four actions (search, sign in, buy, delete) with the note that there is no per-action check.
Origin approval is not action approval


4

min read

Diagram showing a browser agent pipeline: session layer, action extraction layer, and decision layer, with Manifest positioned between browser access and a Jev/Laya-style decision model.
Jev, Laya, and Manifest aren't competing for the same job


5

min read

Diagram showing Browser Run and Kitesurf as the browser-access layer, with Manifest converting rendered pages into structured JSON actions for AI agents.
Kitesurf, Browser Run, and Manifest: Three Different Layers, Not Three Competitors


4

min read

Split illustration: a browser screenshot with a cursor guessing at buttons on one side, a clean JSON action graph on the other
OpenAI's ChatGPT extension can click buttons. Here's why that's not the same problem Manifest solves.


6

min read

Dark developer-tool style diagram showing a requested URL '/products/tan-flat' redirecting via a 302 to a landed URL '/en-pt (homepage)', with a 'redirected: true' flag below it, labeled Manifest Product.
Redirect Handling for Browser Agents: Why requested_url and redirected Exist


7

min read

Dark developer-tool style diagram showing a dependency graph for form fields — nodes for country, shipping_method, postal_code, and same_as_billing connected by directed arrows leading to a submit_order node, illustrating Manifest's requires field.
The Dependency Graph for Form Fields: What requires Actually Encodes


7

min read

Illustration of a cursor clicking a "Cancel" button instead of the intended "Continue" button, with a disabled "Submit" button beside them, representing an AI browser agent clicking the wrong element on a webpage
Why Browser Agents Click the Wrong Element


7

min read

Dark developer-tool style graphic titled "Resolved Selectors vs. Accessible Names," contrasting a role/name accessible-name code block against a resolved CSS selector code block
Resolved Selectors vs. Accessible Names: Why an Accessible Name Isn't an Executable Locator


8

min read

Diagram showing a checkout webpage on the left with its clickable elements — a "Place order" button, a "Promo code" text input, and a "Shipping method" select — highlighted in colored outlines, connected by an arrow to a JSON code panel on the right showing Manifest's structured output for those same elements, under the Manifest logo.
Clickable Elements: How Manifest Extracts Every Clickable Element From a Webpage


6

min read

Code snippet showing ManifestTool added to a LangChain agent, titled 'LangChain Browser Agent Tools: An Actions Layer, Not a DOM Dump
LangChain Browser Agent Tools: An Actions Layer, Not a DOM Dump


5

min read

Diagram showing an AI agent connecting to the Manifest MCP server, which maps a browser session into a structured action manifest with a requires dependency graph, then returns JSON to the agent.
MCP Server for Browser Automation: What It Actually Does (and How to Set One Up)


7

min read

Diagram of a shadow DOM boundary showing slotted content being resolved into a nested button element.
Shadow DOM web scraping: why your selectors keep silently failing


6

min read

Illustration of form fields as connected nodes in a dependency graph, showing completed fields, a field locked behind an unmet dependency, and a gated submit button
How to Fill a Multi-Step Form with an LLM Agent


7

min read

Diagram showing a blocked 'click' action (red, unmet dependency) next to a resolved 'select' action (teal), illustrating Manifest's action dependency graph and the gap between a click firing and it actually working.
Agentic Browser Automation Reliability: Why "Clicked" Isn't the Same as "Worked"


6

min read

Diagram showing a checkout webpage on the left with its clickable elements — a "Place order" button, a "Promo code" text input, and a "Shipping method" select — highlighted in colored outlines, connected by an arrow to a JSON code panel on the right showing Manifest's structured output for those same elements, under the Manifest logo.
Manifest now tells you when its answers are stale


3

min read

Comparison table showing Browserbase for browser session hosting, Firecrawl for content extraction, and Manifest for mapping clickable and fillable page elements
Browserbase vs. Firecrawl vs. Manifest — Which Layer Do You Actually Need?


4

min read

Diagram of an action dependency graph — form fields that must complete in order before the submit button becomes enabled
Why aria_snapshot() Isn't Enough for Agents That Need to Submit Forms


6

min read