Version 0.3.0 — streaming, tools, local models

SMEEware Chatruns where you do.

Reasoning, tool calls and the answer stream in as they happen — with your files, your voice and the model you picked. Nothing leaves this machine unless you send it.

StreamingLocal or hostedEncrypted at rest

Or search directly with K in the docs

Streaming built in

Reasoning, tool calls and the answer arrive as they happen — not in one lump at the end.

Local or hosted

Run a model on your own machine through Ollama, or a hosted one. Same chat, same tools — you pick per message.

Encrypted at rest

Chats and notices are encrypted with a key derived from your password. The key lives in memory only, never on disk.

Files, voice, tools

Attach a file, speak your question in any language, and let the model search, fetch and look at things itself.

Nothing to sign up for

The backend runs next to you on localhost. Start it, point a request at it, and read the answer as it comes in. No key, no account, no SDK to install.

To the quickstart
bash
curl -N http://127.0.0.1:8000/api/v1/chat/stream \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [{"role": "user", "content": "Hello!"}],
    "model": "deepseek-v4-flash"
  }'
API keys

Ready to put it online?

Local stays keyless. When you expose the backend, an API key becomes the ticket in — created against your account, shown once, sent as a bearer token. Turn on REQUIRE_API_KEY and every request needs one.

curl -N https://your-host/api/v1/chat/stream \
  -H "Authorization: Bearer sk_smee_…" \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user",
                  "content":"Hello!"}]}'

Open a chat and see

Everything stays on this machine unless you send it somewhere.

Start chatting