Realbrowser
Realbrowser is an agent skill and small local CLI for fast target-first browser
automation against Chrome/Chromium. It is built for the cases where the useful
state is in the browser the developer is already using: signed-in profiles,
cookies, local storage, active tabs, console logs, network traffic, downloads,
and local app state.
The current CLI is grouped and target-first:
realbrowser [global flags] <group> <command> [args] [flags]
Acquire or create one tab target first, then pass -t <label> or --handle to
reads, actions, screenshots, console, network, state, dialogs, performance,
downloads, and exports.
What It Provides
- An agent skill named
realbrowser (works with Claude Code, Codex, and other
agent platforms).
- A zero-dependency Node CLI at
skills/realbrowser/scripts/realbrowser.mjs.
- Portable wrappers:
skills/realbrowser/scripts/realbrowser for macOS/Linux shells.
skills/realbrowser/scripts/realbrowser.ps1 for PowerShell.
skills/realbrowser/scripts/realbrowser.cmd for Windows cmd.exe.
- Signed-in profile attach through Chrome/Chromium DevTools endpoints.
- Anonymous managed sessions for clean browser state.
- Stable labeled tab targets, scoped per owner/session.
- Target leases for mutating commands so parallel sessions do not
accidentally navigate, close, or click each other's tabs.
- Compact page reads, structured item extraction, screenshots, console logs,
network request/response capture, uploads, guarded submits, downloads, and PDF
export.
Requirements
- Node.js 22 or newer.
- Chrome or a Chromium-family browser.
- A local machine where Chrome DevTools access is acceptable for the requested
profile/session.
Installation
Claude Code
Add the marketplace, then install the plugin:
/plugin marketplace add darkamenosa/realbrowser
/plugin install realbrowser@realbrowser
To update later:
/plugin marketplace update realbrowser
/plugin update realbrowser@realbrowser
Local development install:
/plugin marketplace add /path/to/realbrowser
/plugin install realbrowser@realbrowser
The skill auto-activates when tasks involve browser interaction, screenshots,
console logs, network debugging, or form automation.
Codex
Place the repo under $HOME/.codex/skills/realbrowser and use the
agents/openai.yaml configuration.
Standalone CLI
node skills/realbrowser/scripts/realbrowser.mjs help
Run the built-in checks:
skills/realbrowser/scripts/realbrowser self-test
Common Flows
Parallel sessions:
export REALBROWSER_OWNER=my-project
realbrowser session use profile:chrome:Default
realbrowser tab ensure http://localhost:3000 --profile chrome:Default --label app --background
realbrowser read observe -t app
REALBROWSER_OWNER or --owner <id> scopes labels and default context. Without
an explicit owner, Realbrowser uses the current agent/terminal session when one is
available, falling back to the project path. Mutating commands claim a target
lease; if another owner already owns that tab, rerun with --take-lease only when
you intentionally want to take it over. tab ensure creates a fresh tab instead
of reusing another owner's URL match.
Anonymous page:
realbrowser tab ensure https://example.com --anonymous --session check --label page --background
realbrowser read observe -t page --anonymous --session check
Visible Chrome Incognito window:
realbrowser tab ensure https://example.com --anonymous --session private --label page --front --incognito
realbrowser read observe -t page --anonymous --session private
Signed-in profile:
realbrowser profile list --active
realbrowser tab list "localhost" --profile chrome:Default
realbrowser tab ensure http://localhost:3000 --profile chrome:Default --label app --background
realbrowser read observe -t app --profile chrome:Default
Console and network evidence:
realbrowser console list -t app --errors --limit 50
realbrowser console capture -t app --reload --duration 3000 --out tmp/console.json
realbrowser network capture -t app --reload --duration 5000 --out tmp/network.json
realbrowser network body -t app req_12 --response --out tmp/req_12-response.json --full
Actions and uploads:
realbrowser action state -t app --root active --compact --screenshot --annotate-refs
realbrowser action fill -t app e1 "caption text"
realbrowser action upload -t app --root active --input-ref e2 ~/Downloads/media.png
realbrowser action submit -t app --root active --text "Submit"
Screenshots and exports:
realbrowser screenshot capture -t app tmp/app.png
realbrowser screenshot full -t app tmp/app-full.png
realbrowser screenshot device -t page --anonymous --session responsive --devices desktop:1440x900,tablet:768x1024,mobile:390x844 tmp/page
realbrowser export pdf -t app tmp/page.pdf --print-background
Operating Model