RunAnywhere AI for the web

August 20, 2026 · View on GitHub

RunAnywhere

Try it in your browser

WebAssembly WebGPU TypeScript RunAnywhere License

The RunAnywhere consumer app for the browser, written in TypeScript.

There is nothing to install. Open the page, pick a model, and it downloads into your browser and runs there through WebAssembly, with a WebGPU path where your browser and the model both support it. Whatever you type, say, or upload stays in the tab.

Try it

runanywhere-web-demo.vercel.app

Works in Chrome or Edge 86 and newer, Safari, and Firefox. Models are held in OPFS on your own disk, so the second visit starts instantly.

What it looks like

Captured in a Chromium browser with WebGPU active, running a small GGUF chat model through the llama.cpp WASM build.

ChatChoosing a model
An answer generated in the browser tab. The badge in the corner shows WebGPU is in use.Models are grouped by who published them. The picker recommends one for the machine and reports what the browser can do.
TalkSDK utilities
Talk assembles a speech-to-text, chat, text-to-speech and voice-detection model, then runs the conversation in the tab.The lower-level surfaces: transcribe, read aloud, voice activity, diarization, segmentation, benchmarks, solutions.
DownloadsSettings
What is on disk and what it costs. Browser storage is private to the site unless you pick a folder.Sampling, the system prompt, and optional API credentials.

The image files are in docs/screenshots/.

What you can do

AssistantStreaming chat with tool calling and saved conversations
TalkA full voice session: it listens, thinks, and answers out loud
Image and LiveDescribe a photo, or a live camera frame
TranscribeBatch and streaming speech to text
Read aloudSpeak any text you give it
DocumentsDrop in .txt, .md, or .json and ask questions about them
SolutionsTwo packaged pipelines: a voice agent and document Q&A
BenchmarksOne prompt at three token budgets, charted
DownloadsModel registry, disk usage, storage folder

Segmentation and Diarization have views wired up, but no browser engine registers those capabilities yet, so both tabs show an unavailable placeholder.

Models

The picker groups models by publisher, so you pick a name you recognise and then a size. It carries current-generation open models across chat, vision, speech, and embedding. Sizes shown are measured, not estimated.

A browser tab is the tightest of the four runtimes: WASM32 gives a 4 GiB address space and the runtime needs headroom inside it, so the picker reports what your browser can actually hold and marks the rest as out of reach rather than letting a download fail late.

Build it yourself

git clone https://github.com/RunanywhereAI/runanywhere-web.git
cd runanywhere-web

npm ci
npm run dev      # http://localhost:3000

npm ci pulls the SDK and every WASM artifact with it. There is no separate WASM build step and no Emscripten toolchain to install. You need Node 22.12 or newer.

The one thing that trips people up: the page has to be cross-origin isolated for SharedArrayBuffer. The dev server and vercel.json both send COOP same-origin and COEP require-corp, and public/coi-serviceworker.js covers hosts that cannot.

docs/DEVELOPMENT.md has the scripts table, the WASM artifact list, deployment configuration, and troubleshooting.

Architecture

Four npm packages, no monorepo checkout, no source aliases. What npm install resolves is what the app runs against, currently 0.20.24.

        index.html  →  main.ts  →  app.ts
        boot screen    SDK init    shell, routing, views

        ┌─────────────────┴──────────────────┐
        │        @runanywhere/web            │  lifecycle + facades
        └─────────────────┬──────────────────┘

        ┌─────────────────┼──────────────────┐
        │                 │                  │
  web-llamacpp        web-onnx          proto-ts
  LLM · VLM        STT·TTS·VAD·embed    generated types
  CPU + WebGPU      CPU + WebGPU


             racommons.wasm, the same C++ core
        that ships in the Swift, Kotlin, and Electron apps

Views call RunAnywhere.* and nothing deeper. They may import @runanywhere/web and @runanywhere/web/browser, never /internal or /backend, and they do not reimplement routing, storage, or inference rules in UI code.

Every surface has a URL fragment (#/vision, #/benchmarks), so a tab survives a refresh, a pasted link, and the reload the isolation service worker performs on Safari.

Reference
Which SDK call each view makesdocs/reference/sdk-surface-by-view.md
WASM artifacts and how they are copieddocs/reference/wasm-artifacts.md
Building, deploying, troubleshootingdocs/DEVELOPMENT.md
Contributor conventionsAGENTS.md

The other apps

PlatformRepo
iOS and macOS, Swiftrunanywhere-ios
Android, Kotlinrunanywhere-android
Windows, Electronrunanywhere-electron
SDK monoreporunanywhere-sdks
Documentationdocs.runanywhere.ai
Discorddiscord.gg/N359FBbDVd

License

RunAnywhere License, Apache 2.0 based with additional commercial-use terms. See LICENSE.