explaingit

aryainguz/mrbrowser

Analysis updated 2026-05-18

1TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A self-hosted browser automation tool that lets you write workflows in plain English instead of brittle CSS selectors, with self-healing recovery.

Mindmap

mindmap
  root((mrbrowser))
    What it does
      Intent based clicks
      Self healing automation
      YAML workflows
    Tech stack
      Go
      Python SDK
      Chromium
      SQLite
    Use cases
      Web scraping
      CI browser testing
      Automated form filling
    Audience
      Developers
      QA engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automate browser tasks like logging in and downloading a file described in plain English steps.

USE CASE 2

Build a self-hosted alternative to Playwright that recovers automatically when a website's layout changes.

USE CASE 3

Control browser automation from Python code using the bundled SDK.

USE CASE 4

Run and debug YAML-defined workflows with a step-through CLI debug mode.

What is it built with?

GoPythonChromiumSQLite

How does it compare?

aryainguz/mrbrowser0xkinno/neuralvault0xmayurrr/ai-contractauditor
Stars111
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatehardeasy
Complexity3/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker, or Go 1.22+ and Chromium if building locally.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Mr. Browser is a self-hosted tool for automating web browsers using plain English instead of technical CSS selectors. Rather than writing code that points to a specific button by its exact code name, which breaks the moment a website's layout changes, you describe what you want in ordinary terms, such as clicking a login button or typing into an email field, and the tool figures out which element on the page matches that description. The system works by understanding the structure of a page, scoring candidate elements based on your description, performing the action such as clicking or typing, then checking whether the action actually worked by comparing the page before and after. If a website's layout changes later, the tool can often recover automatically by matching a saved fingerprint of the element rather than a fixed selector, which is what the project calls self-healing. Workflows are written as YAML files, a simple, readable text format, listing a sequence of steps like opening a page, clicking something, typing text, or taking a screenshot. The project can run inside Docker for an easy setup, or be built locally if you have Go and Chromium installed. It also ships a Python library so you can control the browser automation directly from Python code, and it exposes a REST API so other programs can control it remotely over HTTP. The tool is described as using AI only optionally, with element matching handled mostly through algorithmic scoring rather than requiring a language model. Data such as saved element fingerprints is stored locally using SQLite. The project includes example workflows, a command line tool for running and debugging YAML workflows, and a built in step-through debug mode. It is released under the MIT license.

Copy-paste prompts

Prompt 1
Walk me through running mrbrowser with Docker compose and its .env configuration.
Prompt 2
Show me how to write a YAML workflow that logs in and downloads an invoice.
Prompt 3
Explain how mrbrowser's self-healing element matching works when a page's DOM changes.
Prompt 4
Help me use the Python SDK to click a button and type into a form field.

Frequently asked questions

What is mrbrowser?

A self-hosted browser automation tool that lets you write workflows in plain English instead of brittle CSS selectors, with self-healing recovery.

What language is mrbrowser written in?

Mainly TypeScript. The stack also includes Go, Python, Chromium.

What license does mrbrowser use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is mrbrowser to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is mrbrowser for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.