AI Agents
Topshe: voice AI that runs entirely in your browser
· Updated · 6 min read
S
Get AI Agent RFP Template
The RFP I use for agent discovery — scope, eval, and pricing.
No spam, unsubscribe anytime. I only email teardowns.
· Updated · 6 min read
The RFP I use for agent discovery — scope, eval, and pricing.
No spam, unsubscribe anytime. I only email teardowns.
Topshe is a voice assistant that never calls home. Named after the teenage assistant in Satyajit Ray's Feluda stories — the one handed the research, the planning, and the grunt work — it runs wake word to speech-to-text to a quantised Qwen 2.5 LLM inside the browser over WebAssembly. No server, no API key, no data leaving the phone.
Say "Topshe, what's on my calendar?" into your phone, put it in airplane mode, and ask again — it still answers. Most people assume a voice AI assistant must phone a cloud; the entire point of this project is that it doesn't. The whole stack runs locally: React 19 shell, Web Speech API for input, a quantised Qwen 2.5 1.5B Q4 model inferring through WebAssembly (via wllama), offline-capable as a PWA. The whole model binary is ~900 MB cached in IndexedDB — you download it once.
Topshe is Tapesh Ranjan Mitter, the teenage assistant in Satyajit Ray's Feluda detective stories — the one handed the research, the notes, and tomorrow's stake-out plan while the detective thinks. Feluda thought; Topshe researched, planned, and kept records. That division of labour is the product spec: a junior assistant you can shout random tasks at, who quietly researches, plans, and remembers — and never gossips, because nothing ever leaves the device.
The repo is public: github.com/saswatasg/topshe. Ten commits in, the personality system, contacts, clipboard, files, and REPL shipped to make the assistant's "random tasks" land somewhere.
wllama runtime) receives the transcript, decides if a tool is needed, emits a structured call.web_search, weather, stocks, news, calendar, email, todo, reminder, timer, rag_remember, rag_recall. Each handler is pure client-side or OAuth-to-your-own-accounts.No network hop. No API key. The only bytes leaving the device are your explicit OAuth grants to Google/Outlook calendars.
The whole loop has to feel conversational, which in practice means staying under ~2 seconds from end-of-speech to first spoken word. Where the time actually goes on an M-series laptop vs a mid-tier Android:
| Stage | Laptop (M2) | Mid-tier phone | Notes |
|---|---|---|---|
| Wake word detect | ~50 ms | ~80 ms | Porcupine WASM, always-on |
| STT (Web Speech) | streaming | streaming | partials feed the LLM early |
| LLM first token | ~300 ms | ~900 ms | Qwen 2.5 1.5B Q4 via wllama |
| LLM full response | ~1.2 s | ~3.5 s | ~40 tokens typical reply |
| TTS start | ~100 ms | ~200 ms | Web Speech Synthesis |
The phone column is why the model is 1.5B and not 7B. The latency budget picked the model, not the leaderboard.
| Dimension | In-browser (Topshe) | Cloud API assistant |
|---|---|---|
| Privacy | Nothing leaves device | Vendor sees every prompt |
| Marginal cost | $0 | Per-token, forever |
| Reasoning depth | Small-model ceiling | Frontier-model quality |
| Offline | Full function | Dead |
| First-run setup | ~900 MB download | Instant |
| Latency (simple ask) | Sub-second local | Network + inference |
The right answer for most products is a hybrid — local for intent parsing and private data, cloud for heavy reasoning. Topshe deliberately refuses the hybrid to prove where the pure-edge ceiling is.
Version 1 was a tool-caller. Version 2 added a personality system — a small system prompt plus a few-shot memory block that persists across sessions in IndexedDB. The assistant now:
/ to drop into a raw prompt sandbox for debugging tool calls.This turned "a voice tool" into "an agent you talk to daily." The personality system is ~300 lines of prompt + storage logic — small enough to audit, big enough to feel like a consistent character.
Edge LLMs are production-viable for small systems with clear intents — a light assistant, a noise tool, a vault-adjacent copilot. They are not (yet) full cloud-grade chat without a compute fallback.
TGB Hunt and Topshe bookend the same taste: I keep reaching for the smallest system that gives the product to the user. Topshe is the smallest.
The projects page holds the live demo link and the open-source repo — 10 commits, v2 personality + contacts + clipboard + files + REPL.