Most open-source LLM chat interfaces follow the exact same blueprint: a heavy Python or Node.js backend, a Postgres/Redis database, and a multi-container Docker Compose setup just to pass a JSON prompt to an API.
If you just want a clean, responsive workspace to inspect token counts, test system prompts, or chat with your local Ollama instance, deploying 2GB+ of Docker containers is massive overkill.
That’s why I built Lab - a lightweight, completely serverless, local-first web environment for LLMs.
💡 Core Architecture
- Zero Backend: Everything executes entirely on the client side in your browser.
- Local Storage via IndexedDB: Chats, model configs, system prompts, and API keys are persisted locally in your browser using Dexie.js. Nothing ever touches my servers.
-
Surgical Context Controls:
- Exact token usage breakdown per message: User vs. Assistant vs. Tool vs. System.
- Message Pinning: Lock essential system instructions or context anchors in place to prevent them from being pruned when managing context windows.
- Collapsible code blocks and raw JSON payload inspectors.
- Multi-Provider Support: Seamlessly switch between Anthropic, OpenAI, OpenRouter, Google Gemini, and local models via Ollama.
- Offline & PWA Ready: Installable as a native desktop or mobile PWA with background service worker caching.
🛠️ Working with Local Models (Ollama)
Since Lab runs entirely in your browser over HTTPS, connecting to a local Ollama instance (http://localhost:11434) requires allowing browser cross-origin requests.
Simply set the environment variable on your Ollama host:
# Linux (systemd)
sudo systemctl edit ollama.service
# Add:
[Service]
Environment="OLLAMA_ORIGINS=*"
Restart Ollama, and Lab connects instantly directly from your browser tab.
🔗 Links & Code
The project is fully open-source under the AGPL-v3.0 license:
- Web App (Live Demo): https://labstudio.tech
- GitHub Repository: https://github.com/Talos-popcorn/lab
Feedback, bug reports, and PRs are more than welcome!


Top comments (0)