explaingit

hirodefi/agenticbrowser

1TypeScriptAudience · developerComplexity · 4/5ActiveLicenseSetup · moderate

TLDR

TypeScript browser runtime that gives AI agents human-like web access, including anti-bot bypass, page reading as markdown, and natural-language click and type.

Mindmap

mindmap
  root((AgenticBrowser))
    Inputs
      URL
      Plain language action
      JSON schema
    Outputs
      Markdown page
      Extracted data
      Verification result
    Use Cases
      Scrape SPA sites
      Drive web apps from agents
      Bypass bot checks
    Tech Stack
      TypeScript
      Node 20
      Chromium
      CDP
      MCP

Things people build with this

USE CASE 1

Build an agent that logs in to a site and pulls structured records into JSON

USE CASE 2

Drive a single-page web app from Claude or another LLM using natural language clicks

USE CASE 3

Convert any page including iframe and shadow DOM content to clean markdown for an agent

USE CASE 4

Run a long persistent profile so the agent stays logged in across sessions

Tech stack

TypeScriptNode.jsChromiumCDPMCP

Getting it running

Difficulty · moderate Time to first run · 30min

Needs Node.js 20 or newer, a Chrome or Chromium binary, and TypeScript 5; the patched-Chromium backend is optional but planned.

MIT license, free to use and modify with attribution and no warranty.

In plain English

AgenticBrowser is a browser runtime built so AI agents can use the web the way a person does. The README's framing is direct: if a human can access a page, the agent should be able to access it too. The tool opens any URL, including pages built with single-page JavaScript frameworks, iframes, shadow DOM, and lazy-loaded content, and it tries to deal with anti-bot challenges from services like Cloudflare, reCAPTCHA, and hCaptcha without a human stepping in. Once a page is open, the agent can do a small set of high-level actions. It can read the page as clean markdown, click or type by describing the target in plain language (for example, click the login button), pull structured data out of a page using a JSON schema, and verify goals such as whether the user is logged in. If access fails, a recover step tries alternatives like reader mode, archive snapshots, or print views. Profiles can be saved on disk so the agent stays logged in between sessions. The project is layered. A command router sits above a state machine that classifies the page, a challenge solver, content extraction, and a behavior layer that models pointer movement, typing cadence, and scrolling on real human telemetry. Underneath that is a stealth engine that uses CDP-level overrides and per-launch fingerprint seeds to keep values like timezone, locale, GPU vendor, and Client Hints brands consistent across a session. There is also a planned patched-Chromium backend in runtime-binary that modifies fingerprint surfaces at the C++ and V8 level, which the runtime would pick up automatically when present. You can run it three ways. As an MCP server it exposes tools such as browser_open, browser_read, browser_act, browser_extract, and browser_verify, which other agent frameworks can call. As a CLI you run commands like open, read, act, and extract directly. As a TypeScript SDK you import functions like openUrl, readContent, and actOnPage, with optional config for proxy, geo, persistent profile, and a behavior preset. Requirements are Node.js 20 or newer, Chrome or Chromium, and TypeScript 5 or newer. The license is MIT.

Copy-paste prompts

Prompt 1
Show me how to start AgenticBrowser as an MCP server and call browser_open and browser_read from a Claude tool
Prompt 2
Write a TypeScript snippet using openUrl and actOnPage that logs into a test site and extracts the order history
Prompt 3
Configure AgenticBrowser with a persistent profile and a proxy so my agent keeps the same session across runs
Prompt 4
Explain how the stealth engine sets timezone, locale, and Client Hints brands and how I verify they stay consistent
Prompt 5
Give me a working browser_extract call with a JSON schema that pulls product name, price, and stock from a shop page
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.