@ulpi/browse

Content Extraction

Extract text, HTML, links, forms, accessibility trees

17 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"

schema

browse schema

Extract JSON-LD, Microdata, and RDFa structured data from the page

Get structured data

$ browse schema
[{"@type":"Article","headline":"..."}]

meta

browse meta

Extract page meta tags: title, description, canonical, OG, Twitter, hreflang, robots, viewport

Get meta tags

$ browse meta
title: My Page
description: ...
og:title: ...

headings

browse headings

Extract H1-H6 heading hierarchy with counts and indented tree

Get headings

$ browse headings
[h1:1 h2:3 h3:5]
h1: Main Title
  h2: Section...

On this page