madewithlaya

Catalog / LLM routing & guardrails

0096GitHub

Laya Ultrafast: browser-use's jev-ultrafast agent ported to local Laya on MLX

A port of the jev-ultrafast browser agent that decides with laya-mlx instead of the hosted Jev API. DOM snapshot, executor, safety checks and inspector are the originals.

Open source ↗ github.comcostfree, localtime-
ipenywis/laya-ultrafastREADME ↗
# Laya Ultrafast ⚡

**A local, open-weight port of [browser-use/jev-ultrafast](https://github.com/browser-use/jev-ultrafast).**

> [!NOTE]
> This project is a clone of **[jev-ultrafast](https://github.com/browser-use/jev-ultrafast) by [Browser Use](https://github.com/browser-use)**, ported to make its decisions with **[Laya](https://github.com/mizorewww/laya-mlx)** running locally through MLX. The browser agent, DOM snapshot, executor, safety checks, inspector and most of the design are theirs. All credit for the original work goes to the jev-ultrafast authors. For how the agent works, see the [original repository](https://github.com/browser-use/jev-ultrafast).

> [!IMPORTANT]
> **Apple Silicon only.** Laya runs through [laya-mlx](https://github.com/mizorewww/laya-mlx), which needs an M-series Mac, macOS 14+, and Python 3.11+ (this project uses 3.12+).

## What is different from jev-ultrafast

jev-ultrafast asks [TypeSafe's Jev](https://docs.typesafe.ai/introduction), a hosted model, to choose each browser action. This port replaces that API call with **Laya**, an open-weight typed-decision model that runs on your Mac:

- **No decision API and no per-step cost.** Each decision is a local forward pass. The median is about 33 ms on an M1 Max.
- **One text-model call per task.** An OpenAI-compatible model (OpenRouter by default, or a local server such as Ollama) turns the goal into field values, the item to open, and a finish condition. If you use a local text model, the whole agent runs offline, apart from the websites it browses.
- **A different policy.** Laya answers narrow questions well: which field is the destination, whether `Tue, Oct 20` matches `October 20, 2026`, which suggestion is London. It does not reliably answer the open question "what should the browser do

Also filed under LLM routing & guardrails

  1. 0100

    laya-jev-lab: a local-first cascade that matches Jev's accuracy at 1.8x the speed

    Independent Jev vs Laya measurements plus a cascade: Laya decides first, high confidence executes, low confidence escalates to Jev. At a 0.60 threshold it matched Jev's 78%.

    @yibie · LLM routing & guardrails · lower than pure Jev

  2. 0088

    laya_router: a model router with Laya matches GPT-5 nano's accuracy, 35x faster, free

    Two routers behind one endpoint, measured on 180 labelled requests. Laya answers small/medium/powerful routing in one forward pass, against a GPT-5 nano router.

    @glukicov · LLM routing & guardrails · free, local

  3. 0076

    laya-browser-agent: browser decisions on Laya, drop-in for jev-ultrafast tooling

    Local decider for the browser-agent loop: hand it a numbered table of page controls and it picks the operation and element. Playwright/CDP driver, speaks /v1/systemone.

    @ChenneyZhuang · LLM routing & guardrails · free, local, no screenshots

  4. 0075

    jevals: agent evals and guardrails as decisions, runnable on every trace

    Openlayer's library packs every eval for a trace into one decision request: tool choice, grounding, scope, injection, PHI. Runs on Jev, or on Kev or Laya locally on a Mac.

    Openlayer · LLM routing & guardrails · fractions of a cent (Jev) or free (local Laya) · a few hundred ms per trace