Skip to main content

hugpy-browser

Screen-driven browser control for bots — no Selenium, no WebDriver, no debugging port. The tools look at the screen and move the real pointer, so a site sees an ordinary user's browser. Measured: pointer error 0 px on VM and desktop; description aims 11/12 on target, 1 px median error (Qwen2.5-VL-7B).

This package is the one place for the browser-perfect work. The engine itself (the browser_* tools: browser_go/look/click/type/move/drag/scroll/wait/read/shot/ locate/surfaces/lab) ships inside abstract-toolserver (>= 0.0.70, a dependency of this package) and runs in any toolserver — on ae that is the 7004_hugpy_toolserver service. What this package adds around it:

piece where
engine re-exports hugpy_browser.browser / .aim / .surfaces / .labcheck / .vl
operator guide hugpy-browser guide (same text as toolserver instructions/hugpy/hugpy-browser)
measured numbers hugpy-browser numbers (docs/final_numbers.md)
re-measurement kit hugpy_browser/bench/ — evalrun.py, pipelines.py, vlclient.py, rescore.py, final_table.py, and the 233-target synthetic set (data/, data2/)
end-to-end scripts hugpy_browser/e2e/ — e2e_desktop.py, e2e_vm.py, lab_prepare.sh, cleanup_e2e.sh
lab-VM assets hugpy_browser/assets/ — precision.html, hugpy-browser-lab.xml, clone.xml, base-inactive.xml, prep_guest.sh

Install

pip install hugpy-browser

Quickstart (through a toolserver)

browser_surfaces()                                   # where can I drive?
browser_go(url="https://example.com", on="vm:<name>")
browser_look()                                       # the screen as text items
browser_click(text="Sign in")                        # exact visible words
browser_type(text="me@example.com", into_text="Email")
browser_wait(text="Welcome", timeout=20)

Aim four ways: text= (OCR, exact visible words), target= (vision-model description, confirmed on a magnified crop), cell="J2.D5" (labelled grid, for a bot that reads images itself), or x=, y=. Every click is verified: before/after frames, diff regions, a verdict (changed_at_click | changed_elsewhere | no_change).

For a repeatable environment: browser_lab(action="start") boots an ephemeral clone of the hugpy-browser-lab image (Firefox on a precision test page); browser_lab(action="check") runs the 17-check self-test and reports the measured pointer error. hugpy-browser assets prints the directory with the libvirt XML and guest-prep script to rebuild that image anywhere.

CLI

hugpy-browser where     # the map: engine, service, lab, docs, backups
hugpy-browser guide     # the full operator guide
hugpy-browser numbers   # the measured benchmark results
hugpy-browser assets    # path to precision.html + lab VM assets

Re-measuring

See docs/measure.md and bench/: evalrun.py drives the aim pipelines over the synthetic target set (data/ 233 targets; data2/ row/card targets); vlclient.py points at any OpenAI-style vision endpoint (VL_BASE). Results of record are in docs/final_numbers.md.

Metadata

Release files for hugpy-browser 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hugpy-browser 0.1.0
File Size Uploaded
hugpy_browser-0.1.0.tar.gz 812.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hugpy-browser 0.1.0
File Interpreter ABI Platform
hugpy_browser-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / hugpy_browser-0.1.0.tar.gz

Download URL hugpy_browser-0.1.0.tar.gz
Size 812.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5e9ef8a387c5d6162962827fc165d0d04e21359010f3dbf98cb3190cff066724
BLAKE2b-256 checksum
How to use checksums
1bd7a42ccee95dc10217d971746f5e6d78d62217efa2dfe2df18ea2294549809
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / hugpy_browser-0.1.0-py3-none-any.whl

Download URL hugpy_browser-0.1.0-py3-none-any.whl
Size 820.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2c29e0c659241a2fc2339c381dc375dbcb870208a1a8196ccbfa31855bf1e06
BLAKE2b-256 checksum
How to use checksums
e6e821ad47a507edabd21330d741f4e4d37193165da597a169c1c7707e01cd3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page