Skip to content
runonweb

12 modules · WebGPU + WASM · $0

Free, open-source AI models that run in your browser.

Speech-to-text, background removal, OCR, translation, image generation and more as JavaScript modules. Nothing leaves the device.

pnpm add runonweb
Scan · OCR01 / 12
import { OCR } from 'runonweb/ocr'

const ocr = new OCR({ size: 'small' })
await ocr.load()

const { text, lines } = await ocr.read(imageFile)
console.log(text)

01 / Models

Pick a task. Import a module.

02 / How it works

From input to result, all in your browser.

Each module checks what your browser and its model support, chooses a tested precision, loads matching weights, and returns plain JavaScript values.

AI model walkthrough

Audio, image, or text. A model for each.

Pick an input to see its AI model, local runtime, and output.

runonweb/stt

01 Choose an input

02 Load an AI model

load()
Model for this taskScribeWhisper tiny.en

Transcribes speech into text.

Matching weights · cached after first load

03 Run locally

The AI model runs in your browser.

04 Get an output

TextTranscript
ImageTransparent PNG
AudioPCM or WAV

Real modules: Scribe uses Whisper, Remover uses BEN2, and Voice uses Kokoro.

Pick an input to trace its path

03 / Measured, not promised

Real numbers from a real browser.

Apple M-series · Chrome · weights cached

Download size and inference time on WebGPU and WASM for every runonweb model. Measured on an Apple M-series laptop in Chrome with weights cached.
ModelTaskDownloadWebGPUWASM
ScanOCR~31 MB (small) · tiny ~6 MB · medium ~139 MB~0.6 s~2 s
RemoverBackground removal~219 MB-~15 s
ScribeSpeech-to-Text~150 MB / ~40 MB0.4 s / 11 s audio1.6 s / 11 s audio
AltImage captioning~316 MB / ~505 MB0.7–1.2 s~30 s
DepthDepth estimation~50 MB / ~27 MB0.8 s · 640×4805.6 s
SpotObject detection~29 MB-~1 s
VectorText embeddings~45 MB / ~23 MB14 ms / sentence40 ms / sentence
LingoTranslation~22 MB (tiny) · ~37 MB (base-memory) · ~49 MB (ja, ko, zh)-~0.1 s / sentence
PolishTranscript cleanup~339 MB / ~385 MB~1–2 s / sentence~6–10 s / sentence
EmojifyText-to-Emoji~4 MB-10 ms / sentence
VoiceText-to-Speech~326 MB / ~92 MB (small) · multi ~262 MB · tiny ~28 MB0.7 s / sentence~3 s / sentence
ImagineImage generation~3.4 GB (binary) · ternary ~3.9 GB~10–40 s · 512²-

04 / Open weights, credited

We don’t train these models. We make them run in a tab.

Whisper, RF-DETR, Depth Anything, MiniLM, OPUS-MT, Kokoro, BEN2, PP-OCRv6, Florence-2, Bonsai Image. Every module says which weights it uses, who made them, and under which license. Only Apache-2.0 and MIT make the cut.