Browser session + snapshots + selector DSL + real actions.
from sentience import SentienceBrowser, snapshot, find, query, click
with SentienceBrowser(api_key="sk_live_…") as b:
b.page.goto("https://example.com")
# Collect + refine
snap = snapshot(
b,
limit=50,
filter={"min_area": 100, "allowed_roles": ["button", "textbox"]},
)
# Selector DSL
login = find(snap, "role=button text~'Sign in'")
click(b, login.id)
# Multi-match
inputs = query(snap, "role=textbox")
print(len(inputs))