An AI chat app you host yourself. Prompts and replies go to a model running on your own hardware.
Breeze is an AI chat application you host yourself. Prompts and replies go to a model running on your own hardware, not to a vendor's cloud. Exactly one feature reaches the internet, and only when you switch it on.
Privacy by default
The default model endpoint is localhost:11434. Transcripts land in your own
MongoDB. Web search is the only feature that leaves your network -- it is on by
default, but only the query the model wrote ever crosses the boundary, never
your transcript.
Install the frontend, the backend and a local model.
How the three layers fit together, and where state lives.
Reasoning, images, web search and generative UI.
The FastAPI endpoints and the streaming protocol.
| Layer | Choice |
|---|---|
| Frontend | Next.js 16 (App Router), shadcn/ui, Tailwind 4 |
| Backend | FastAPI |
| Model | Ollama, local |
| Database | MongoDB via Mongoose |
| Observability | Langfuse, optional |
| Web search | Tavily, on by default, keyless fallback |
Reasoning streams as its own block and collapses once you have read it.
Cited sources, on by default, with retrieved text contained.
Drop an image in and a vision model reads it alongside your text.
Replies can carry charts, tables and metric cards, not just prose.
Find any past chat by title or by something said inside it.
Session auth, a shared service key and per-IP rate limits.
Every page is available as plain Markdown for feeding to a model: append
.mdx to any docs URL, or use the Copy Markdown button at the top of the
page. The whole site is also at /llms.txt and
/llms-full.txt.