Mlola product

Reliable browser use with a fast path.

MLola Browser Runtime executes real browser tasks without asking a frontier model for every click. Browser mechanics, safety, verification and recovery are deterministic systems; models are used only where judgement or generation is actually required.

Quick start
npm install @mlola/browser-runtime

export TYPESAFE_API_KEY="..."        # fast-path key: https://typesafe.ai
npx @mlola/browser-cli browser doctor
npx @mlola/browser-cli browser run \
  --goal "Download my latest invoice" \
  --url https://billing.example.com/invoices

One step

One observation. One decision. One typed action.

The loop is deliberately boring: every step is observable, every effect is verified, and no model has direct browser authority.

Observe

One atomic observation per step: controls, labels, values, geometry and page state in a single pass — no screenshot in the normal loop.

Decide

One request to the fast path: the model picks one operation and its target from the list that is actually compatible.

Policy

Risk is classified in code — payments, deletions, sends, secrets. Risky actions need approval or a human takeover.

Execute

A typed action runs after freshness, visibility and occlusion checks. Model output never becomes a selector or code.

Verify

"Done" is a claim. Independent evidence — an artifact, URL, DOM state, runtime event — or a human confirms it.

Model routing

Four tiers, each with a job.

The frontier model is a fallback, not the default path. What decides cost is how many routine steps the fast path handles — and that is measured on every run.

Fast path

Routine decisions: operation and target. One request per step, latency measured every time.

Planner

Only for long-horizon work: laying out subgoals and handling dead ends.

Text helper

Used only when a value must be generated; otherwise your own wording is reused literally.

Human

Login, OTP, CAPTCHA and risky decisions: the runtime pauses and hands over control.

Safety

Boundaries are deterministic, not prompt requests.

  • Typed actions only — no selector, coordinate or JavaScript ever comes from a model
  • Risk can only be raised by target context; a model cannot lower it
  • Passwords, OTP and card data: takeover required, never in model state or traces
  • Instruction-like page content is quarantined, not negotiated
  • Unknown-effect actions (submits, uploads) are never retried without re-observing

Evidence

Verifiable, recoverable, auditable.

  • Every step is verified against the next observation
  • Append-only local event log: replayable and auditable
  • Deterministic eval corpus: core, matrix, security, regression, stress
  • Every real bug is minimized into a permanent regression case
  • Per-run metrics: fast-path share, latency, cost, human interventions

Status

V1 runs today. Some of it is still ahead.

V1 drives Chrome through Playwright: a runtime-managed profile, or attaching to a browser you already have open. The npm packages are published, along with the CLI and a local daemon.

The next phase is the extension runtime: an isolated agent window and explicit, permissioned tab borrowing. We do not list it as shipped before it ships.

Got a browser workflow worth automating?

hello@mlola.com