.json file here to import
↑↓ to move · Enter to run · Esc to close
Ollama is running — it just will not answer a web page it has not been told about. That is deliberate on Ollama's part, and worth understanding before you turn it off: without that list, any site you visited could quietly read your models and run prompts on your hardware. It is protecting you from this page.
One command, once per machine. Nothing to edit. Paste this in a terminal:
… …
It adds this one site to Ollama's allowlist and restarts it. To undo
it later, …
Not on this platform?
Run the models on this phone, with Termux. About ten minutes, once. You will need a phone with 6 GB of memory or more and a couple of gigabytes free.
- Install Termux from F-Droid, not the Play Store — the Play Store version is years out of date and cannot install Ollama. Termux on F-Droid
- Install Ollama — open Termux and paste:
pkg update -y && pkg install -y ollama - Keep Termux awake so Android does not stop it while you are in the browser:
A wake lock is not always honoured — several phone makers stop background apps anyway. Also set Settings → Apps → Termux → Battery to Unrestricted, and leave Termux's notification in place.
termux-wake-lock - Start Ollama for this page, in the background:
… - Get a model small enough for a phone:
ollama pull llama3.2:1bqwen3:1.7bandgemma3:1balso run well. Leave 8B models to a recent flagship. - Come back here and press Check again.
Rather not set anything up? A cloud provider works too — see Cloud providers below; OpenRouter has free models.
If answers stop part-way, Android has probably stopped Termux. Open it: if the server is gone, paste step 4 again. The most reliable way to work is Termux and the browser side by side in split screen — an app on screen is not stopped. Why phones do this, by maker.
On an iPhone or iPad, use a cloud provider.
This demo normally runs AI models on the device you are using, and iOS cannot run Ollama — every browser on iOS is Safari underneath, and Safari will not let a web page reach Ollama on another computer either.
What works here is a cloud provider with your own API key. OpenRouter has free models: make a free account, create a key, paste it under Cloud providers, and add a model marked FREE. Your prompts then go to that provider, straight from this tab.
Or run it locally: open this page on a Windows, Mac or Linux computer, or an Android phone with Termux.
Nothing answered on port 11434. Either Ollama is not running, or it is not installed.
ollama serve
No Ollama yet? It is free and open source:
ollama.com.
You will also need at least one model pulled —
ollama pull llama3.2 is a small one to start with.
Chrome, Edge and Firefox are confirmed working — measured from
this origin, including the CORS preflight. Safari is expected
to refuse, because WebKit does not grant
http://localhost the mixed-content exemption the other
engines do. That one is reported rather than tested here, and every
browser on iOS is WebKit underneath. On Android, Ollama under Termux
works: it is the same machine, so 127.0.0.1 still means
this phone.
Models and seats
Leave this on unless you know your machine can hold several models at once. A pipeline can name five different models. With this on, only one is ever resident, so your peak is whatever your largest single choice is — which is how a 24 GB card runs a five-seat pipeline of 20 GB models. With it off they stay loaded and two experts run at once: faster if you have the headroom, and a way to wedge the machine if you do not.
Standing instructions
Applied to every answer in this conversation — tone, language, length, who you are. Saved with the conversation, so it comes back when you reopen it. Leave it blank and nothing is added.
Get a model
Downloads onto your machine through your own Ollama. Nothing passes through this website.
Large open-weight models are deliberately not filtered out — if you have the capacity for a 120B, put it in a seat. Sizes are shown so you can see what you are committing to.
The three expert slots are separate on purpose. Giving them three different model families is what the panel is for: they make different mistakes, so where they disagree there is something real for the thinking seat to settle. Three copies of one model mostly agree with themselves. Each name carries its family, so you can see what you are picking.
Cloud providers none connected
Use models from a cloud provider with your own API key — useful on a phone, or for a model too big for your machine. Your prompts then go to that provider, straight from this browser tab; nothing passes through this website. Keys are kept for this tab only — set a passphrase to keep them, encrypted, on this device.
Your files nothing indexed yet
Point this at notes, a spec, a repository — anything text. It is read in this tab, split into passages, and turned into vectors by an embedding model on your Ollama. Every question then searches those passages first and the pipeline answers from them, with citations. No file is uploaded: this website has no endpoint that accepts one, which is the same reason the chat works the way it does.
every published paper, embedded on your Ollama, so retrieval can cite them
Collections
Each folder you index becomes a named set. Untick one to keep it out of this conversation's answers — the files stay indexed, they are just not consulted. The choice is saved with the conversation, so a chat about your thesis keeps reading your thesis sources when you come back to it.
What is skipped, and why it is listed. PDFs, Word
documents, images and archives are containers, not text — feeding
their raw bytes to an embedding model produces confident nonsense that
then outranks real passages. Dependency and build folders
(node_modules, .git, dist,
venv) are skipped too. Anything skipped is named above, so
a question about a file that was never indexed gets an honest answer
instead of looking like broken retrieval.
Limits are per visit and exist to protect your own tab, not this site: 300 files, 1.5 MB each, 12 MB in total.
Paste something instead
Prepended to the request as-is, with no indexing. Good for an error message or a single snippet.
Which model should I choose? by what your machine can hold
The single number that matters is how much VRAM your graphics card has (or unified memory, on an Apple Silicon Mac). A model has to fit in it to run at a sensible speed. With VRAM optimisation on — it is on by default, in the demo's Settings — only one seat's model is resident at a time, so the figure to compare against is your largest single choice, not the total of all five.
| You have | Comfortable model size | Examples to pull |
|---|---|---|
| 6–8 GB | 3B–8B, quantised | llama3.2:3b, qwen3:8b |
| 12–16 GB | 8B–14B | qwen3:14b, gemma3:12b |
| 24 GB | 24B–32B | qwen3:32b, gemma3:27b |
| 48 GB+ / multi-GPU | 70B and mixture-of-experts | llama3.3:70b, gpt-oss:120b |
| No dedicated GPU | 1B–3B, on the CPU | llama3.2:1b — slow, but it runs |
| A phone, via Termux | 1B–3B, occasionally 8B | llama3.2:1b, qwen3:1.7b — 8B only on
a recent flagship |
Retrieval needs one more, and it is small:
ollama pull nomic-embed-text is 274 MB. Without an
embedding model the demo's Your files panel has nothing to index
with, and reads as broken rather than unconfigured.
Generate an image checking…
This uses a Stable Diffusion WebUI running on your own computer — Automatic1111, Forge, SD.Next or reForge — the same way the chat above uses your own Ollama. Nothing is generated on this website and no image you make is uploaded anywhere.
First time setup: download Stable Diffusion WebUI, then:
- Open a terminal and
cdinto the folder you cloned - Run the command below (it enables the API and allows this page to talk to it)
- Wait for it to finish loading, then refresh this page
Or click Auto-detect SD after starting it and we will check again.
Ollama cannot do this part. It added image generation in January 2026, but it is experimental, macOS-only, and absent from current builds — on Ollama 0.33.3 every image endpoint returns 404. When it ships on Linux and Windows this panel can use it directly.
A WebUI is running but will not accept requests from this page. It needs this origin in its CORS allowlist — add both flags and restart it: