/install gbrow
Gbrow — The Browser Your AI Agent Actually Needs
A full-featured headless browser powered by Playwright and Bun. Uses the accessibility tree for page reading — not expensive vision models.
Why Gbrow?
| Traditional (screenshots + vision) | Gbrow (accessibility tree) |
|---|---|
| Screenshot → upload to GPT-4o → wait → read | ariaSnapshot() → instant structured text |
| ~$0.01 per page read | Free |
| 3-10 seconds per page | \x3C 100ms |
| Fails on API key issues | Always works |
| Click by fragile CSS selector | Click by @ref (@e1, @e2, etc.) |
Quick Setup
# Clone and install
git clone https://github.com/ashish797/Gbrow.git ~/.openclaw/workspace/skills/Gbrow
cd ~/.openclaw/workspace/skills/Gbrow
bash setup.sh
Or one-liner:
curl -fsSL https://raw.githubusercontent.com/ashish797/Gbrow/main/setup.sh | bash
How It Works
1. Start the server
cd ~/.openclaw/workspace/skills/Gbrow
bun run src/server.ts
2. Read the page (accessibility tree)
The snapshot gives you a structured view with clickable refs:
@e1 [heading] "Welcome" [level=1]
@e2 [link] "Get Started"
@e3 [button] "Sign in"
@e4 [textbox] "Search"
3. Click by ref
click @e2 → clicks "Get Started"
fill @e4 "query" → types into search box
Commands
Navigation
| Command | Description | Example |
|---|---|---|
goto \x3Curl> |
Navigate to URL | goto https://example.com |
back |
History back | back |
forward |
History forward | forward |
reload |
Reload page | reload |
url |
Print current URL | url |
Reading
| Command | Description | Example |
|---|---|---|
snapshot |
Accessibility tree with @refs | snapshot -i (interactive only) |
text |
Cleaned page text | text |
html [selector] |
Raw HTML | html .article |
links |
All links as "text → href" | links |
forms |
Form fields as JSON | forms |
Interaction
| Command | Description | Example |
|---|---|---|
click \x3Cref> |
Click element | click @e3 |
fill \x3Cref> \x3Ctext> |
Fill input | fill @e4 "hello" |
select \x3Cref> \x3Cvalue> |
Select dropdown | select @e5 "option1" |
type \x3Cref> \x3Ctext> |
Type with keyboard | type @e4 "search term" |
press \x3Ckey> |
Press key | press Enter |
scroll \x3Cdirection> |
Scroll page | scroll down |
Inspection
| Command | Description | Example |
|---|---|---|
js \x3Cexpr> |
Run JavaScript | js document.title |
css \x3Csel> \x3Cprop> |
Computed CSS | css .box color |
attrs \x3Cref> |
Element attributes | attrs @e1 |
is \x3Cprop> \x3Cref> |
State check | is visible @e3 |
Tabs
| Command | Description |
|---|---|
tabs |
List open tabs |
tab N |
Switch to tab N |
newtab |
Open new tab |
closetab |
Close current tab |
Visual
| Command | Description |
|---|---|
screenshot |
Take screenshot |
responsive \x3Cw> \x3Ch> |
Set viewport size |
pdf |
Save page as PDF |
Snapshot Flags
| Flag | Description |
|---|---|
-i |
Interactive elements only (buttons, links, inputs) |
-c |
Compact (remove empty structural nodes) |
-d N |
Limit tree depth |
-s \x3Csel> |
Scope to CSS selector |
-D |
Diff against previous snapshot |
-a |
Annotated screenshot with ref overlays |
HTTP API
All commands go through the HTTP API:
# Get port and token from state file
PORT=$(python3 -c "import json; print(json.load(open('.gstack/browse.json'))['port'])")
TOKEN=$(python3 -c "import json; print(json.load(open('.gstack/browse.json'))['token'])")
# Send command
curl -s -X POST "http://127.0.0.1:${PORT}/command" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"command":"goto","args":["https://example.com"]}'
Architecture
┌─────────────┐ HTTP ┌──────────────────┐
│ OpenClaw │ ──────────▶ │ Gbrow Server │
│ Agent │ │ (Bun + Playwright)│
└─────────────┘ └────────┬─────────┘
│
▼
┌──────────────────┐
│ Chromium │
│ (headless) │
└──────────────────┘
│
▼
┌──────────────────┐
│ Accessibility │
│ Tree (ariaSnapshot)│
└──────────────────┘
No vision models. No API calls. Just structured text from the browser's accessibility layer.
Credits
Built on top of gstack by Gary Tan (Y Combinator). Adapted for OpenClaw with permission under MIT license.
License
MIT
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install gbrow - After installation, invoke the skill by name or use
/gbrow - Provide required inputs per the skill's parameter spec and get structured output
What is Gbrow?
Full-featured headless browser for OpenClaw agents. Navigate, snapshot with accessibility tree (@ref clicks), tabs, JS execution, cookie import. No vision mo... It is an AI Agent Skill for Claude Code / OpenClaw, with 103 downloads so far.
How do I install Gbrow?
Run "/install gbrow" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Gbrow free?
Yes, Gbrow is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Gbrow support?
Gbrow is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Gbrow?
It is built and maintained by ashish797 (@ashish797); the current version is v1.0.0.