AI Chat — User Guide
The complete manual: connect your own model, and unlock every feature. Everything stays in your browser.
In this guide
1 · Setup 2 · Chatting 3 · Thinking & models 4 · Tools & code 5 · Memory & favourites 6 · Voice 7 · Organisation 8 · Files, costs & backups 9 · Privacy & troubleshooting1. Setup — connect a model in 30 seconds
The AI Chat is bring-your-own-model: it talks to any OpenAI-compatible endpoint. No account on our side, no server in the middle.
Local (free, private): run Ollama, LM Studio or llama.cpp on your PC, then in Settings enter an endpoint like http://localhost:11434/v1 and press Load models. No API key needed for local servers.
Cloud: paste your provider's endpoint and API key — e.g. OpenRouter (https://openrouter.ai/api/v1), Groq, Together, Mistral or OpenAI. The key is stored only in your browser and is sent only to the endpoint you configured.
Google AI Studio (Gemini): choose it in the Quick setup dropdown — endpoint https://generativelanguage.googleapis.com/v1beta/openai, embeddings model text-embedding-004. Chat, streaming, tools, compare, JSON mode and semantic memory all work. Note: Gemini doesn't expose Whisper/TTS audio endpoints, so use the browser voice modes instead.
Models load automatically: paste your endpoint and the model list refreshes by itself after a short pause (there's also a ↻ button next to the model selector, and Load models in the panel).
localhost means the phone itself. To chat with a model running on your PC, use the PC's LAN address (e.g. http://192.168.1.50:11434/v1, with Ollama's OLLAMA_HOST=0.0.0.0) or a cloud endpoint.Other settings: system prompt (personality), temperature, max tokens, and — under Tools & options — history length, Enter behaviour, auto-read, JSON mode and more.
2. Chatting
- Send: Enter makes a new line; press Ctrl+Enter or the ➤ button to send (configurable in Tools & options).
- Streaming replies render live; Stop cancels mid-answer (the partial text is kept).
- Message actions: ✏️ edit & resend from any point, ♻️ regenerate, ➕ continue, 🗑️ delete, 👍/👎 rate.
- 👎 does real work: the reply is retried immediately with feedback for the model. 👍 saves the reply to your Favourites (in Tools & options) for later download.
- Attachments: 📎 attach images (sent to vision models) or text files; paste screenshots straight from the clipboard. 📷 takes a photo on phones.
- Queue: type while a reply streams — your message waits and sends automatically.
- Slash commands:
/new,/clear,/image,/wiki query,/google query,/read url,/help. - Mention a model: start a message with
@model-nameto route just that one. - Prompt variables: saved prompts can contain
{{topic}}placeholders — you fill the values before sending.
3. Thinking, JSON and multi-model
- 💭 Thinking: reasoning models (DeepSeek-R1, OpenRouter reasoning, local QwQ…) stream their chain-of-thought into a collapsible panel above each reply.
- 📐 JSON mode: toggle it and every request asks the model for strict JSON — valid replies are pretty-printed, ready to copy or download.
- 👥 Compare: check models in the Settings compare picker and enable Compare in Tools & options — one prompt, side-by-side answers, each labelled with its model.
4. Tools & running code
With 🛠️ Allow tool use on, the model can ask the browser to act — and the result is fed back automatically (up to 5 rounds):
- web_search — live Wikipedia search (no key needed)
- google_search — Google Custom Search (needs your free API key + search engine ID in Settings)
- custom_search — your own search engine (SearXNG, 4get or any JSON API): paste its URL in Settings using
{q}for the query (e.g.https://your-instance/search?q={q}&format=json), then tick “Expose custom search to the agent” in Tools & options. The instance must allow CORS — most public instances do, and self-hosted ones can add the header. - read_url — fetch any page via Jina Reader
- calculate — a safe math evaluator
- get_datetime — current date/time
- run_python — runs real Python in a browser sandbox (Pyodide, loads on first use)
- save_memory — writes a fact to your memory
Outside tool mode, code blocks are still useful: Python blocks get a ▶ Run button, HTML/SVG blocks a 👁 Preview, and every block a ⬇ Download with the right file extension (md, html, js, py, json…).
5. Memory & favourites
- 🧠 Memory: add facts in Tools & options ("My company is…", "I prefer TypeScript"). They are injected into prompts across all chats so the model remembers you.
- 🧲 Semantic memory: switch on embeddings search and memories are ranked by meaning against your question — the top three are injected. Needs an embeddings-capable endpoint (default model
text-embedding-3-small, editable). - ⭐ Favourites: 👍-rated replies collect here with ⬇ download and ✕ remove.
- 📚 Saved prompts: your own reusable prompt library — ▶ loads one into the composer.
6. Voice
- Voice in: 🎤 uses your browser's speech recognition where available, or your endpoint's Whisper (
/audio/transcriptions) — pick the mode and model in Settings. Tap 🎤 once to record, again to stop. - Voice out: 🔊 reads replies with the browser voice, or your endpoint's TTS (
/audio/speech— set model and voice, e.g.tts-1/alloy). Enable "Read replies aloud automatically" to hear every answer.
7. Organisation
- Conversations: New / Delete / ✏️ rename — chats auto-title from your first message.
- 📌 Pin keeps a chat at the top; the folder filter narrows the list — type any folder name for a chat in Tools & options.
- Tags: comma-separated per chat; they show in the list and are searchable.
- 🔎 Search: the toolbar box searches every message in every chat (and tags) — click a result to jump to it.
8. Files, costs & backups
- Downloads: whole replies as Markdown (⬇ .md), code blocks as files, favourites, settings and chats — all generated locally.
- 💰 Cost tracking: paste per-model prices in Settings as JSON, e.g.
{"gpt-4o":[2.5,10]}(dollars per 1M input/output tokens). Each reply then shows its cost and the chat total. - 💾 Backup all / Restore: everything — chats, favourites, memory, saved prompts, settings — in one JSON file, restorable on any device.
- 🧹 Clear all data wipes the local database and settings in two clicks.
9. Privacy & troubleshooting
Privacy: keys, chats, memories and uploads live in your browser only (IndexedDB). Requests go directly from your browser to your endpoint — and to Wikipedia/Google/Jina only when you use those tools. Nothing touches our servers.
--cors flag. Cloud endpoints are fine. Serving over http (not https) also blocks some browsers when the page itself is https.Ready to try it? Open AI Chat — and if you get stuck, the /help command lists the shortcuts inside the app.