The goal - what I'm exploring
Wren is my take on a ChatGPT-like assistant done well: one chat where typing and talking are always both there, research you can watch and check, and a memory you can see, edit and delete instead of a black box. It's also a study in running an AI product on a free tier honestly: a real guest mode with clear limits.
How it uses AI
Chat runs on Gemini (a Flash-Lite model with a fallback model when it's busy), streamed token by token, and voice on Gemini Live. Memory turns what you save into Gemini embeddings in Cloudflare Vectorize, so you find things by meaning. Research runs search the web, read the pages and answer with citations to only the pages they opened.
How it works
- Try it as a guest: 5 messages a day with no account, kept only in your tab, behind a Cloudflare Turnstile check and per-network limits so the free tier stays fair.
- Answers stream as Wren writes them, from the agent through the API route to the browser; Stop or closing the tab keeps what was written.
- Voice: tap the mic and talk with Wren through Gemini Live, relayed by your own agent; talk over it to interrupt, and every spoken turn lands in the same chat as text.
- Each signed-in person has their own Durable Object (Cloudflare Agents SDK) holding their chats, memory and daily meter in its own SQLite database.
- Memory is a library you browse and edit: notes, links and files, searched by meaning with Gemini embeddings in Vectorize.
- Research runs show what they searched and read, and cite only the pages they opened.
- Sign in with GitHub or a one-time email link (Better Auth on D1); links expire in 10 minutes and are stored hashed.
- A free demo on Gemini's free tier, and it says so: don't share anything private with it, and for real use add your own Gemini key, kept only in your browser and never stored or logged.

