BrowserAI: Run LLMs in the Browser – Simple, Fast, and Open Source!
- π Privacy First: All processing happens locally – your data never leaves the browser
- π° Cost Effective: No server costs or complex infrastructure needed
- π Offline Capable: Models work offline after initial download
- π Blazing Fast: WebGPU acceleration for near-native performance
- π― Developer Friendly: Simple API, multiple engine support, ready-to-use models
- Web developers building AI-powered applications
- Companies needing privacy-conscious AI solutions
- Researchers experimenting with browser-based AI
- Hobbyists exploring AI without infrastructure overhead
- π― Run AI models directly in the browser – no server required!
- β‘ WebGPU acceleration for blazing fast inference
- π Seamless switching between MLC and Transformers engines
- π¦ Pre-configured popular models ready to use
- π οΈ Easy-to-use API for text generation and more
Demo | Description | URL | Status |
---|---|---|---|
Chat Demo | Simple chat interface with multiple model options | Try Chat Demo | β |
Voice Chat Demo | Full-featured demo with speech recognition and text-to-speech | Try Voice Demo | β |
bash
npm install @browserai/browserai
OR
bash
yarn add @browserai/browserai
import { BrowserAI } from '@browserai/browserai'; const browserAI = new BrowserAI(); browserAI.loadModel('llama-3.2-1b-instruct'); const response = await browserAI.generateText('Hello, how are you?'); console.log(response);
const ai = new BrowserAI(); await ai.loadModel('llama-3.2-1b-instruct', { quantization: 'q4f16_1' // Optimize for size/speed }); const response = await ai.generateText('Write a short poem about coding', { temperature: 0.8, maxTokens: 100 });
const ai = new BrowserAI(); await ai.loadModel('gemma-2b-it'); const response = await ai.generateText([ { role: 'system', content: 'You are a helpful assistant.' }, { role: 'user', content: 'What is WebGPU?' } ]);
const ai = new BrowserAI(); await ai.loadModel('whisper-tiny-en'); // Using the built-in recorder await ai.startRecording(); const audioBlob = await ai.stopRecording(); const transcription = await ai.transcribeAudio(audioBlob);
More models will be added soon. Request a model by creating an issue.
- Llama-3.2-1b-Instruct
- SmolLM2-135M-Instruct
- SmolLM2-360M-Instruct
- SmolLM2-1.7B-Instruct
- Qwen-0.5B-Instruct
- Gemma-2B-IT
- TinyLlama-1.1B-Chat-v0.4
- Phi-3.5-mini-instruct
- Qwen2.5-1.5B-Instruct
- Llama-3.2-1b-Instruct
- Whisper-tiny-en (Speech Recognition)
- SpeechT5-TTS (Text-to-Speech)
- π― Simplified model initialization
- π Basic monitoring and metrics
- π Simple RAG implementation
- π οΈ Developer tools integration
- π Enhanced RAG capabilities
- Hybrid search
- Auto-chunking
- Source tracking
- π Advanced observability
- Performance dashboards
- Memory profiling
- Error tracking
- π Security features
- π Advanced analytics
- π€ Multi-model orchestration
We welcome contributions! Feel free to:
- Fork the repository
- Create your feature branch (
git
Leave a comment