Skip to content
Elowen
Section: Brain & Chat
Guide

Brain & Chat

The agent you talk to

Elowen is the brain. The brain is the embedded agent core you chat with — it reasons, calls tools, edits files, runs commands, loads plugins and skills, remembers what matters, and can even wake itself up on a schedule. Everything else in the product — the Dashboard, Kanban, Timeline and Sessions — exists so you can watch and steer this agent. The brain is Elowen's identity; the dashboards are the window onto it.

You reach the same agent from four places: the web dock, the CLI, Discord, and WhatsApp. Same reasoning, same tools, same memory — just a different surface. And because Elowen is modular to the core, every one of those capabilities (each chat platform, each tool, memory, skills) is a plugin you can add or remove. Nothing here is baked in; it's all Plugins.

The Elowen brain chat, showing a conversation with tool-call traces

Architecture

Under the hood the brain is a multi-provider AI engine. You don't need this to use it, but it helps to know how the pieces fit when you're configuring or extending Elowen:

ComponentPurpose
BrainServicePer-user lifecycle — start, stop, status
PlatformOrchestratorRoutes each message through the right provider, tools, and plugins
ChannelSessionServicePer-channel session management (web, CLI, Discord, WhatsApp)
LiveSessionRegistryTracks active brain sessions
PluginRegistryThe loaded plugins, tools, skills, and context providers

The important takeaway: it's a small, self-hosted engine with a clean, modular design. Lightweight app, professional-grade code — you run the whole thing yourself.

Chat interfaces

The agent is the same everywhere; only the surface changes.

Web dock

The web dock is a resizable side panel that follows you across the whole web UI, so the agent is one click away no matter which module you're in. It has two modes:

  • Chat — talk to the brain directly, with full conversation history, tool-call traces so you can see exactly what it did, a per-conversation model picker, and auto-compact to keep long threads within context.
  • Terminal — a live view onto a running agent session (a tmux-spawned worker or a live session), for when you want to watch or intervene in real time.

CLI chat

elowen chat                  # start an interactive chat
elowen chat --new            # fresh conversation
elowen chat --session <id>   # resume a past conversation

The CLI chat uses an opencode-style layout: tool glyphs, a status bar, and inline diffs when the agent edits files — the full agent, right in your terminal. See CLI for the complete command reference.

Discord & WhatsApp

Both chat platforms are plugins. Add the Discord bot to bring the agent into your server, or the WhatsApp plugin (built on Baileys) to chat from your phone. Both support a per-chat / per-channel model picker and streamed replies, so answers appear as they're generated. Setup for each lives in Plugins.

Conversations

The brain keeps distinct, resumable conversations:

  • New — start fresh; the conversation gets a unique session id.
  • Resume — pick up any past conversation with its full history intact.
  • Search — fulltext search across everything you've ever discussed.

Conversations persist in SQLite (~/.config/elowen/elowen.db) and survive daemon restarts, so nothing is lost when you restart Elowen.

Model catalog

The model picker aggregates every model available to you from three sources:

SourceExample
Manual providers — statically configuredOpenAI, Anthropic
Auto-fetch — pulled live from the provider API/v1/models endpoint
OAuth-connected accountsAnthropic, GitHub Copilot, OpenAI

Configure it all in Settings → Elowen AI. Each provider carries its own API key, base URL, and model list, so you can mix and match freely.

Supported providers

The elowen setup wizard ships presets for the common providers, so you usually just pick one and paste a key. Each is an OpenAI-compatible (or Anthropic Messages) endpoint — for anything not listed, choose Custom OpenAI-compatible endpoint and enter its base URL by hand.

ProviderBase URL
OpenAIhttps://api.openai.com/v1
Anthropic (Claude)https://api.anthropic.com
OpenRouterhttps://openrouter.ai/api/v1
Google Geminihttps://generativelanguage.googleapis.com/v1beta/openai
xAI (Grok)https://api.x.ai/v1
DeepSeekhttps://api.deepseek.com/v1
Groqhttps://api.groq.com/openai/v1
Mistralhttps://api.mistral.ai/v1
Together AIhttps://api.together.xyz/v1
Fireworks AIhttps://api.fireworks.ai/inference/v1
Cerebrashttps://api.cerebras.ai/v1
Perplexityhttps://api.perplexity.ai
DeepInfrahttps://api.deepinfra.com/v1/openai
Moonshot (Kimi)https://api.moonshot.ai/v1
Z.AI (GLM)https://api.z.ai/api/paas/v4
NVIDIA NIMhttps://integrate.api.nvidia.com/v1
Hugging Facehttps://router.huggingface.co/v1
Basetenhttps://inference.baseten.co/v1
Ollama Cloudhttps://ollama.com/v1

Aggregators like OpenRouter and Hugging Face expose many upstream models behind a single key. For subscription sign-in instead of raw keys (Claude, GitHub Copilot, ChatGPT/Codex), see below.

Chat smoke-test

Whichever provider you connect, elowen setup runs a chat smoke-test — one tiny, real completion — before it lets you move on, so you know the model actually answers rather than just that a key was saved. Run elowen doctor any time for a readiness report — chat, tasks, missions, memory, platforms and plugins — to see what works and how to fix the rest.

Any provider that passes the smoke-test is enough to run ordinary tasks — they execute on Elowen's built-in engine (elowen:<provider>/<model>), no separate agent CLI required. Multi-phase missions (plan → engage → execute) need one step more: either an OpenAI-compatible key for the planning relay, or an installed agent CLI as the Pilot.

Connect your AI accounts (OAuth)

Rather than paste raw API keys, you can link your existing AI subscriptions directly:

  • Anthropic — your Claude account
  • GitHub Copilot — your Copilot subscription
  • OpenAI — your OpenAI account

Once linked, connected accounts show up as ordinary providers in the model picker — pick their models per conversation just like any other.

Memory

The agent remembers across conversations, so context you shared last week is still there today. Memory is per-user and private: each person reaches only their own memories — from their own Elowen chat or a linked platform account (Discord/WhatsApp) — never another user's, never the operator's. Nothing bleeds between accounts.

The Memory module — a glass-brain map of stored memories

Two things happen automatically around every exchange:

StageWhat happens
RecallBefore the reply, the most relevant durable memories are retrieved and injected into the turn — framed as user-provided context, never instructions, so a stored note can't hijack the agent. Semantic when an embedding model is configured, keyword otherwise.
Curation (save)After the exchange settles, a cheap model distills any durable, reusable facts — stable preferences, decisions, project paths, gotchas — and applies a small, capped batch of edits (add / update / merge / delete). Greetings, transient state and one-off debug steps are deliberately ignored; most turns save nothing, and that's expected.

Both are per-user toggles in Account → Memory (Auto-recall / Auto-save), read fresh each turn so a flip applies immediately — no restart.

The agent also carries explicit memory tools — search, add, update, merge, delete, list recent, and manage categories — to curate memory on demand. They're locked to the acting user: a task worker or an unlinked platform sender gets no access at all.

FeatureDescription
CategoriesMemories are organized by topic, with best-effort LLM auto-classification of each new fact
Glass-brainA visual memory map in the Memory module — see how memories cluster and connect

Semantic recall needs an embedding model: pick the provider, model and dimensions in Settings → Memory, where you can also re-index the whole store. Everything persists in SQLite, so you can see, merge and purge what the agent knows about you — clarity all the way through.

Communication style

Each user can give the agent a communication style — a system-prompt fragment that shapes its tone and behavior. Communication styles are per-user and per-platform, so the agent can be terse and technical in the CLI, friendlier on Discord, and formal on WhatsApp — all for the same underlying brain. Set yours in your account settings.

Reasoning effort

Control how hard the model thinks before it answers:

LevelEffect
minimalFast, direct answers
lowSome reasoning
mediumBalanced
highThorough
xhighMaximum reasoning

Set it per conversation in chat (the /think command), per channel on Discord/WhatsApp, or as a default in your account settings.

Limits

Settings → Elowen AI carries a Limits card — operator-tunable ceilings that let you trade cost, verbosity and latency to taste. Every value is a whole number clamped to a safe range: the daemon re-clamps whatever you type, so a field can never be pushed somewhere dangerous. The defaults are sensible; leave them unless you have a reason.

LimitWhat it controlsDefault (range)
Tool output — lines / charsHow much of a tool's output the expanded view shows before it's clipped80 lines / 12000 chars (20–400 / 2000–50000)
Question timeoutHow long a parked ask_user_question waits for an answer before auto-resolving as "no answer", so a turn never hangs forever5 min (30 s–30 min)
Memory recall — count / charsHow many memories, and how many characters of them, get injected per turn6 / 1500 chars (1–20 / 300–8000)
Goal turn budgetAutonomous turns a /goal runs before it pauses for you to confirm8 (1–50)
Goal safety ceilingAbsolute cap on goal turns — even in YOLO the loop stops here so a runaway goal can't burn tokens forever64 (8–500)
Live channel sessionsHow many live channel conversations stay resident before the least-recently-used is dropped (its history stays in the DB)32 (4–256)

Sitting beside them is Max steps — the ceiling on model round-trips per request (Discord shows "Step N / MAX"), 1–200, default 20 — the guard against a turn looping forever.

Tools are per-user

What the agent can do is governed by Elowen's RBAC. Under Settings → Users, an admin can give each user a different set of tools and permissions — grant one person the terminal and files tools while another gets chat only, and scope each user to specific projects. The agent you chat with only ever wields the tools you're allowed to use. See Account & Security for the full model, and remember: every tool is itself a plugin you can grant or revoke.

Next: Plugins

© 2026 Elowen · MIT Licensed

Reference on GitHub