Feature

Local models (in your browser).

Chat with open models that run entirely in your browser via WebGPU — your words never touch a server.

Curtis's other providers relay every prompt to the endpoint you configure. The Local (in your browser) provider is different: the model itself runs inside your browser on the GPU, generation happens on your machine, and the only network traffic is the one-time model download. Set expectations accordingly — this is built for fast private drafts, a quick rewrite or brainstorm you'd rather not upload, not as a Claude replacement. These are small models with short memory (~4k context), and quality is proportional to size: the 3B model out-thinks the 1B, and both are far from a frontier cloud model.

Off by default. Settings → Local (in your browser) → enable. Then pick a local model in the chat's model picker — no API key, no endpoint.

#The shortlist

Six vetted models ship built in — WebLLM's prebuilt q4f16_1 weights. Download size is roughly the GPU memory the model needs; bigger is better and slower.

ModelDownloadLicense
Llama 3.2 1B (default)≈879 MBLlama 3.2 Community License
Qwen3.5 0.8B≈1,629 MBApache-2.0
Qwen2.5 1.5B≈1,630 MBApache-2.0
SmolLM2 1.7B≈1,774 MBApache-2.0
Llama 3.2 3B≈2,264 MBLlama 3.2 Community License
Phi-4 mini≈3,438 MBMIT

#First use downloads the model

The first time you pick a model, Curtis fetches it — 0.9 to 3.5 GB — from the model host (Hugging Face's CDN) into your browser's cache, with a progress line under the composer. On a metered connection, mind that first download. After it completes the model is cached and loads locally; every turn from then on is fully offline. If your browser clears site data, the cache goes with it and the model re-downloads on next use.

#Browsers

BrowserLocal models
Chrome / Edge (desktop)Supported — the intended home
Safari 26+ (iOS)Supported
Everything elseNo WebGPU → a clear error, not a silent fallback

#Privacy

  • After the one-time model download, local turns have zero egress. Generation, the system prompt, and conversation history stay on the machine — the send path branches before any network call is possible.
  • The download itself is the one egress: from the model host (Hugging Face CDN), once per model.
  • Conversation history still syncs to your Curtis server exactly as cloud turns do; delete it there when you're done with it.

#See also

→ PROVIDERS.md — where this provider sits among the built-ins → FAQ.md — the full list of what leaves your machine → VAULT_RETRIEVAL.md — the other local-by-default path: on-device embeddings