Chat

The model picker, the context window, thinking, the sampling controls, personas, memory, document chat, voice in and out, and export.

Your first message

1 Check the model

The model picker sits next to the message box. After the wizard it shows the starter model, "Qwen 2.5 7B (Starter)", or the model you picked. If the picker shows no model, open the Models tab and install one first; the "New Chat" button in the sidebar reads "Pick or install a model first" until then.

2 Type and send

Click into the box with the placeholder "Message...", type, and press Enter or the send button ("Send message"). The first answer takes longer than the following ones, because the LU Engine loads the model file into memory first; a 4 GB file takes some seconds from an SSD and longer on the first cold start. While an answer streams in, the send button becomes "Stop generation". Stop means stop: the request is cancelled at once.

3 Start a new chat

"New Chat" in the sidebar starts a fresh conversation with the same model. Old conversations stay in the list on the left, where each row has "Rename chat" and "Delete chat" buttons. Everything is stored on your machine, in the app's browser storage, with a backup file that chapter 2 names.

The model picker

The picker groups models by family, and each row shows the model name. A row with an On/Off switch is a model the engine can load or unload; "Unload all models" at the bottom frees the memory of every loaded model. A model that comes from LM Studio carries a hint that using it starts the LM Studio server and makes LM Studio the chat backend in place of the LU Engine. In Cloud mode the picker shows hosted models only, with the marks that chapter 8 explains.

If the picker says "No AI backend is enabled", every provider is switched off under Settings, AI Backends, Providers; enable the LU Engine there. Chapter 9 lists the other providers and their default addresses.

The context window

The context window is how much text the model can hold at once, measured in tokens (a token is roughly three quarters of a word in English). Everything counts against it: the system prompt, your messages, the answers, attached documents and tool results. When it is full, older turns fall out or the answer is cut.

Above the message box a small dropdown shows the current value and a counter next to it shows how much of it this conversation uses. Open the dropdown to change it:

On the LU Engine the tooltip reads "Changing it reloads the model so it takes effect now." The reload takes as long as the first load did. Memory grows with the context: the KV cache, where the model keeps the conversation while it works, grows linearly with the context length, so 32,768 on a 7B model can push a 6 GB card into RAM. If answers become slow after you raised it, put it back.

On a server you run yourself (Ollama, LM Studio, llama.cpp, vLLM, KoboldCpp, or a custom OpenAI compatible address) the tooltip reads "This server decides its own context; pick the value it actually runs with so the counter and the request budget match it." The app asks those servers what they run with where it can (llama.cpp, vLLM, KoboldCpp and LM Studio answer), and a note under the dropdown reads "Current value 8,192 (from server). Your pick is saved for this model on this server." In Cloud mode there is no picker, because the hosted model's window is fixed.

Thinking and effort

Some models can reason before they answer, writing a hidden draft first. The "Think" button next to the message box switches that on and off for models that support it. Its tooltip tells you what the current model can do: "Thinking ON", "Thinking OFF", "Thinking is always on for this model" or "Model does not support thinking".

Next to it, the effort control cycles through Low, Medium, High and Max. Its tooltip reads "Reasoning effort: High. Click to cycle. Higher effort spends more output tokens." The default is High. On a local model effort costs time; on a hosted model it costs credits, because thinking tokens are output tokens.

The sampling controls

Next to the message box a small trigger reads "Sampling: 0.70". A star after it means "Changed from the defaults". Click it to open four sliders:

ControlRangeWhat it does
Temperature0 to 2, step 0.05, default 0.7Lower is more predictable, higher is more varied. 0 always picks the most likely word.
Top P0 to 1, default 0.9Only the most likely words whose probabilities add up to this share are considered.
Top K0 to 200, default 40Only the K most likely words are considered. OpenAI style backends ignore it.
Max tokens0 = autoThe longest answer allowed. 0 lets the app decide.

A help line under the sliders reads "Reasoning models accept these and react less to them." "Reset" puts everything back to the defaults. The same four values live under Settings, General, Generation as the defaults for new chats; the trigger changes them for the current chat.

Images in the chat

The paper clip next to the message box attaches up to five images ("Attach images. For PDFs and documents use the Documents panel"). Only a vision model can read them. If the current model cannot, the app says "This model can't read images. Switch to a vision model (Gemma 4, LLaVA, Qwen-VL) to use the attachment." The Models tab marks vision models with an image icon in its legend.

Document chat

The "Docs" button above the message box opens the Documents panel. Drop a .pdf, .docx or .txt file into it and the app splits the text into pieces, turns each piece into numbers with the embedding model, and for every question you ask it fetches the pieces that match and hands them to the chat model. This is what people call RAG.

Document chat needs the embedding model from step 4 of the wizard. If you skipped it, the panel shows "Embedding model needed" and "Document Chat needs nomic-embed-text (274 MB). One-time download." with a button to fetch it. The panel also tells you where the indexing runs: "Your documents are indexed on this computer and stay here" on a local backend, or, on a remote embedding server you configured, "Indexing runs on (address), so the full text of every document you add is sent there".

Personas, memory and plugins

A persona is a system prompt with a name. The default persona is "No Filter", which tells the model that it is your own model, running for you alone, and carries the house conduct rules; it has a real role, so a plain question gets a plain answer. Twenty five personas are built in and you can write your own under Settings, Agent, Personas ("Use personas" switches the feature on). The "Plugins" button above the message box opens a panel where "Persona" has the checkbox "Enable persona for this chat".

The same panel holds "Chat Tools" (web, file, image and video tools for the plain chat), "Caveman Mode" (Off "Normal responses", Lite "Slightly shorter", Full "Very terse", Ultra "Maximum brevity") and "Group chat" ("Pick 2 to 4 models. They answer in turn on every message, and each sees what the others said.").

Memory is a small store of facts about you that the app injects into every prompt. The Memory toggle above the message box ("Memory: view, add or delete the context injected into prompts") shows what is in it. Settings, Agent, Memory manages the store.

Voice in and out

Voice runs locally. Speech to text uses faster-whisper, which you install under Settings, Voice & Remote, Speech with "Download & Install"; the microphone button reads "Start voice input" and, while recording, "Stop recording". If it is not installed, the app says "Speech-to-text is not installed. Install faster-whisper in Settings → Voice & Remote."

Text to speech uses Piper, a small neural voice of about 63 MB. "Enable read-aloud" under the same settings adds a speaker button to every answer ("Read aloud" / "Stop speaking"), and "Auto-read new responses" reads every answer as it arrives. In Cloud mode dictation runs hosted and needs a signed in account with credits.

Export, compact, new chat

"Export chat" above the message box saves the conversation as Markdown or JSON; Ctrl+E saves Markdown at once. Settings, General, Chat Backup exports all chats in one file and imports them again, and Settings, General, Import from other chatbots reads the export files of ChatGPT, Claude and Gemini.

When a long conversation nears the end of its context window, type /compact. The app summarises the older turns into a short recap and the conversation keeps going with the summary in place of the history. "Auto-compact at" under Settings, General, Generation does that on its own once the context is a set percentage full; 0 means off.

Ctrl+K opens a command palette with the field "Search actions…" that jumps to any tab or action by name.

When it goes wrong

The answer never starts. The engine is probably still loading the model. Wait for the load; the budget is 60 seconds plus 4 seconds per gigabyte of model file, up to ten minutes for a huge file on a cold disk. If it fails, the sentence that appears is one of the engine sentences in chapter 9.

"Couldn't start the LU Engine with "(model)": (reason)" The engine could not load that file. The reason after the colon is explained in chapter 9; the most common ones are a damaged download ("does not start with the GGUF marker") and a graphics card problem ("This looks like a graphics-card problem").

The answer is nonsense, mixed scripts, question marks. Almost always a model under 7B or a model that does not fit the card at all. Pick a 7B or larger model that the Models tab marks green or blue for your card. If it persists with a good model, set GPU Layers to 0 under Settings, AI Backends, LU Engine (expert) to run on the processor once and see whether the text is clean; if it is, the graphics driver is the suspect.

"Cut off at the length limit" appears as a badge under an answer. The model hit Max tokens. Raise Max tokens in the sampling controls (0 = auto) or under Settings, General, Generation, then send "continue".

"Your documents could not be searched for this message" The embedding model or its server did not answer. Check Settings, AI Backends for the embedding provider; on the LU Engine, the embedding server runs on port 8128 next to the chat engine.

The model forgets the start of the conversation. The context window is full and the oldest turns fell out. Type /compact, raise the context in the dropdown if the model and your memory allow it, or start a new chat.

Ollama or LM Studio is installed but the picker shows nothing from it. The server is not running. Ollama: start the app or run ollama serve. LM Studio: start its local server in LM Studio's Developer tab. Then press "Test" next to the provider under Settings, AI Backends, Providers.


Previous chapter: First start. Next chapter: Agent. Back to the handbook overview.