@ulpi/browse

Content Extraction

Extract text, HTML, links, forms, accessibility trees

14 commands

text

browse text

Get visible page text (clean, no scripts/styles)

Extract page text

$ browse text

html

browse html [selector]

Get full HTML or element innerHTML

Get element HTML

$ browse html "#main"

forms

browse forms

Form structure as JSON

List forms

$ browse forms

accessibility

browse accessibility

Raw ARIA accessibility tree snapshot

Get accessibility tree

$ browse accessibility

js

browse js <expression>

Evaluate JavaScript expression in page context

Get page title

$ browse js "document.title"
My Website

eval

browse eval <file>

Evaluate JavaScript file in page context

Run script

$ browse eval ./extract.js

css

browse css <selector> <property>

Get computed CSS property value

Get font size

$ browse css "h1" "font-size"
32px

attrs

browse attrs <selector>

Get element HTML attributes as JSON

Get link attributes

$ browse attrs "a.nav-link"
{"href":"/about","class":"nav-link","aria-label":"About"}

element-state

browse element-state <selector>

Element state: visible, enabled, checked, editable, focused, tag, type, value, bounding box

Check element state

$ browse element-state @e3
{"visible":true,"enabled":true,"checked":false,"tag":"input","type":"text"}

value

browse value <selector>

Get input, select, or textarea current value

Get input value

$ browse value @e4
user@example.com

perf

browse perf

Navigation timing: DNS, TTFB, DOM load, full load

Performance metrics

$ browse perf
DNS: 12ms | TTFB: 85ms | DOM: 340ms | Load: 1.2s

dialog

browse dialog

Get last browser dialog info (type, message, default value)

Read dialog

$ browse dialog
{"type":"confirm","message":"Are you sure?"}

clipboard

browse clipboard [write <text>]

Read or write system clipboard

Read clipboard

$ browse clipboard

Write to clipboard

$ browse clipboard write "copied text"

On this page