mini-browser CLI
Console browser mb for agents: open a page, snapshot it, click, fill forms, take screenshots and record the screen
- 185 ★ on the repository
- Last commit
Extended access
Why this level
- `mb js` runs arbitrary JavaScript on the open page, and clicks and form input happen on behalf of the open Chrome session.
- The debug Chrome listens on local port 9222, so any program on the machine can connect to it.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/mini-browserDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- `mb js` runs arbitrary JavaScript on the open page, and clicks and form input happen on behalf of the open Chrome session.
- The debug Chrome listens on local port 9222, so any program on the machine can connect to it.
This is third-party code. Review the repository files before installing.
What it does
mini-browser is the `mb` console browser for agents: each command does one action and writes its result to stdout, so commands chain with pipes and `&&`. Under the hood puppeteer-core connects to Chrome over CDP on port 9222. `mb go <url>` opens a page and waits for network activity to settle, `mb text` returns the visible text and `mb shot` saves a screenshot. For interface work `mb snap` lists the interactive elements of the current window from the accessibility tree: role, name, center coordinates and state. The agent then calls `mb click`, `mb type`, `mb drag` or `mb scroll` on those coordinates, while `mb fill` fills fields by label, placeholder or selector. Other commands run JavaScript on the page (`mb js`), record the screen to `.webm`, `.mp4` or `.gif` and print a design audit covering palette, fonts, contrast, SEO and accessibility. The `mini-browser` skill tells the agent how to check readiness (`which mb`, Chrome answering on port 9222) and in what order to call commands. The `mb-start-chrome` and `mb-restart-chrome` scripts bring up a debug Chrome with a 1024×768 window.
Who it is for. Developers who ask Claude Code, Codex or Cursor to open a site, screenshot a layout or walk through a form without writing Playwright scripts.
Good fit when
- The agent pulls a page's text from a site and pipes the result into a file.
- You are checking a layout: the agent opens an address and takes a screenshot at a chosen width with `--width` and `--height`.
- A signup form fails on the second step, and the agent walks through it with `mb fill` and `mb click`, checking `mb snap`.
- A bug report needs a recording of the scenario as `.gif` or `.mp4`, and `mb record` makes it.
- A page floods the console with errors, and `mb logs` streams them.
Not a fit when
- You need CI tests with assertions and reports: `mb` gives commands but has no test runner.
- The work runs inside your own account session: `mb-start-chrome` creates a fresh profile on every launch, so you sign in to sites again.
- The machine has neither Chrome nor Chromium: the launch scripts look only for those browsers.
Example request
Open https://example.com, take a screenshot 1280 pixels wide and list the interactive elements of the first screen.Limitations
Node.js is required for the npm install, and Chrome or Chromium must be on the machine. `mb snap` returns only elements in the current window, so on a long page scroll and call it again. `mb text` takes the first selector match and returns an empty string on noisy pages, so pass `main` or `#content`. On heavy single-page sites add `mb wait` with the selector of the block you need after `mb go`.
How to disable. Remove the package with `npm uninstall -g @runablehq/mini-browser`. Remove a skill installed through `npx skills` with the same CLI or by hand from the agent's skills directory. Close the debug Chrome window like any other.
FAQ
How do I change the port or the Chrome path?
Set the `CHROME_PORT` and `CHROME_BIN` environment variables before running `mb-start-chrome`. `CHROME_USER_DATA_DIR` and `CHROME_PID_FILE` change the profile directory and the PID file.
How do I take a screenshot at a different width?
Add `--width` and `--height` to `mb shot`: the window resizes for the shot, then returns to its previous size.
How do I get mb output as JSON?
Add `--json` to `mb snap`, `mb tab list`, `mb logs` or `mb audit`. The other commands print plain text.
How does mb differ from Playwright scripts?
`mb` is a set of short commands: each prints its result to stdout and a scenario is built with pipes and `&&`. It has no scripting library or test runner.
How do I record the screen?
`mb record start demo.gif` starts recording, `mb record stop` saves the file and `mb record status` shows the state. `--fps` sets the frame rate and `--scale` the scale.
Discussion
No questions or reviews yet.
Related
CLI toolsA fast Rust CLI for agent browser automation: accessibility snapshots with element refs, an MCP server and skills
A CLI, skill and MCP server for driving Chrome with short Puppeteer scripts, with tabs that keep state between calls
Chrome control for AI agents: a local Go HTTP server with a CLI, MCP, profiles and a skill for Claude Code
A skill for Amp, Claude Code and Cursor: the agent drives your live Chrome with its open tabs and signed-in accounts through a single debugging toggle
A local browser automation platform: MCP server, CLI and skills so an agent can drive Chrome, fill forms and pull data from pages
A CLI and MCP server that lets an agent drive your real Chrome with its logged-in sessions: 103 commands across 36 platforms plus browser automation
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| mini-browser (this card) | no | 185 | |
| agent-browser-cli | no | 649 | connects the agent to your own Chrome through an extension; this one uses a separate debug Chrome and Unix-style commands |
| Browser Harness | no | 19,048 | drives your real Chrome and writes missing functions itself; this one is a fixed command set in a fresh profile |
README in short
The README lists the skill as the first install method and the global CLI as the second, with a demo GIF of installing and visiting a page. A notes section covers details: `type` with coordinates triple-clicks the field first, and `fill` matches a field by accessible name, aria-label, placeholder, name and id attributes and label text. The tool can be tried without installing at runable.com.