Run Laya in the browser
Laya is small enough to run in a browser tab with no server and no API key. The input never leaves the page. The trade-off is a download of several hundred megabytes on the first visit and much slower inference than a native runtime.
361 projects
reflex-engine
chenshuai9101
A Python toolkit collects, calibrates, and automates routine decisions using local Laya
dsh-browser-laya
drscrewdriver
A reserved npm package name for a planned browser-action backend using a local Laya sidecar
jev-arena
eliot5566
Lets users create text-driven fighting bots piloted by Jev, Laya, or other models
laya-demo
siloh12
Runs a browser demo that calls a Gradio Space to make typed decisions with Laya
laya-demo
wuyouxiaobai
Provides a landing page and deployable Gradio demo for Laya typed decisions
laya-webgpu
ti3x-m
Runs Laya typed-decision checkpoints in the browser using WebGPU or WASM
laya-json-render
ti3x-m
Runs Laya typed decisions locally in the browser to drive validated JSON-render interfaces
laya-playground
ti3x-m
Provides an in-browser playground for inspecting Laya typed decisions and runtime details
flutter-laya-tetris
leehack
Lets a Laya decision model play Tetris in real time in the browser
laya-meme-app
khushali678
Matches scenarios with meme reactions using Laya decisions and a Supabase vector store
laya
archevel
Runs Laya typed-question inference in the browser using ONNX Runtime Web and WebGPU
Laya
rkvishwa
Provides a local playground for composing queries and calling a self-hosted Laya server
layatest
krish154
Combines Laya, Qwen, and MCP tools in a modular local AI agent
lagos-monopoly
vunderkind
Runs two local Laya agents through a Lagos-themed Monopoly game and creates animated replays
laya-plane-battle
wjw1-Evan
A browser-based plane battle game uses a local Laya model to make real-time gameplay decisions
jev-vs-laya-dino
RodolfoBonis
A Chrome Dino game demo compares Jev and Laya on gameplay, latency, cost, and performance
laya-browser-use-skill
xnetsc
A portable decision skill bundles a local Laya model with a WebGPU runtime and browser adapter
hekla-spjall
Hekla-dev
A Chrome side panel pairs on-device Gemma text generation with local Laya decisions
chess-system-one
aalekhpatel07
A chess frontend lets users play against decision models including Laya
weekofstay-agent-demo
drayapaty
Demonstrates an event-week hotel agent using Laya decisions and Jev browser automation
layapilot
sanjeevranjaniitb
Simulates autonomous driving with Laya making real-time typed decisions
layafill
danioh04
Fills job applications automatically through a Chromium browser extension
laya-js
abhimanyupandian
Packages Laya for local inference in browsers and Node.js using ONNX Runtime
laya-mbti
shibadogcap
Estimates MBTI traits from X archives using Laya in a client-side web app
Libraries
kevala is a zero-dependency Rust engine compiled to WebAssembly, with WebGPU kernels. It works from any page:
<script type="module">
import { Kevala } from "https://cdn.jsdelivr.net/npm/kevala@latest/js/src/index.js";
const kevala = await Kevala.load({ model: "laya", onProgress: console.log });
</script>
or pnpm add kevala. According to its README, the Laya int8 pack is 479 MB and is kept in browser storage after the first visit.
@r4ai/laya-web runs ONNX Runtime Web with WebGPU and a WebAssembly SIMD fallback, and is designed to run in a Web Worker:
npm install @r4ai/laya-web onnxruntime-web
Demos you can open
- layaForWeb: the English checkpoint as quantized ONNX (default build about 440 MB), with a live demo.
- open-jev-laya: multilingual Laya on Transformers.js (fp16 ONNX about 647 MB) with Gomoku, Big Two and a 3D maze.
- layaAsRagJudge: checks RAG claims against retrieved evidence entirely in the tab.
Speed and support
The layaForWeb README reports that a three-question call on the default WASM backend took about 2 to 5 seconds on a 2-core machine. In that project, WebGPU works only with the int4 build, because ONNX Runtime's WebGPU MatMulNBits kernel supports 2- and 4-bit weights. open-jev-laya tries WebGPU and falls back to WebAssembly.
Caveats
Quantized browser builds do not match PyTorch exactly. layaForWeb reports 97.9% top-answer agreement for all three of its quantized builds, with the largest probability gaps in int4. For a real-time loop, laya-pong keeps the model native. Its README gives the reason: the checkpoint wants about 2.4 GB resident in f32, and wasm32 has a 4 GB address space and no Metal.
More ways to use Laya