Elowen
Elowen v0.16.0 · Self-hosted · MIT

The AI agent you host yourself.

Elowen is a self-hosted AI agent you chat with — it reasons, calls tools, edits code and runs commands. Reach the same agent from the web, your terminal, Discord or WhatsApp. Your machine, your models, your data.

$ npm install -g elowen && elo install
One agent, everywhere
Web dock CLI Discord WhatsApp
elowen chat live
refactor auth.ts to use the new session helper
reasoning…
edit_file auth.ts +42 −18
run_command npm test 24 passed
Done — auth.ts now runs on sessionHelper. All 24 tests pass, no callers changed.
★ 6 on GitHub MIT licensed Self-hosted Chat anywhere Plugin marketplace Long-term memory Per-user RBAC
Meet your agent

Not an orchestrator. An agent you talk to.

You chat with Elowen and it acts — reasoning, calling tools, editing files and running commands. The dashboards, kanban and terminals are how you watch and steer it. Four principles hold the whole thing together.

Clarity

A clean, uncluttered UI where you always see exactly what the agent is doing — every reason, every tool call, every change.

Simplicity

Easy to run, easy to control. Sensible defaults, one command to start, low friction from install to first task.

Fully extensible

Every capability — chat platforms, tools, memory, automation — is an add/remove-able plugin. Modular to the core.

Lightweight, pro-grade

One small daemon plus a Next.js UI over a single SQLite file. Self-hosted, tiny footprint, a codebase you can actually read.

Chat from anywhere

One agent. Four surfaces.

Same reasoning, same tools, same memory — only the window changes. And because every platform is a plugin, you decide where your agent lives.

Web dock

A resizable side panel that follows you across the whole UI — chat, tool-call traces, a live todo panel, per-conversation model picker.

CLI

elo chat drops the full agent into your terminal: tool glyphs, inline diffs and a status bar, opencode-style.

Discord

A native bot (no client lib). Mention it in a channel for streamed replies, a per-channel model picker and role→project policies.

WhatsApp

Chat from your phone, powered by Baileys. Edit-in-place streaming, a numbered model menu and proactive pushes.

discord
Elowen on Discord — Streamed replies with a live todo checklist and status reactions.
Discord · Streamed replies with a live todo checklist and status reactions.
whatsapp
Elowen on WhatsApp — Edit-in-place streaming replies with the agent’s tool trace.
WhatsApp · Edit-in-place streaming replies with the agent’s tool trace.

Built to do the work — and be reshaped.

A real agent core, wrapped in surfaces that keep you in control. Everything you see is self-hosted and yours.

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

An agent that acts

Chat with Elowen and watch it work — it reasons, calls tools, edits files and runs commands, streaming every step back with full tool-call traces. The brain is a small, self-hosted multi-provider engine you run yourself.

The Plugins settings screen showing installed plugins grouped by category
Plugins

Modular to the core

Almost everything the agent can do arrives as a plugin — chat platforms, tools, memory, automation, even the status line. Install from the marketplace, toggle, and configure live. Hot-reload means no daemon restart.

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

It remembers you

Long-term memory across conversations, backed by a self-hosted mem0 server. Relevant facts are recalled at the start of a turn, saved after it, and mapped in a visual “glass brain” you can browse, merge and purge.

Extensible

Everything is a plugin.

The agent's capabilities aren't baked in — they're composed. Browse the marketplace, install with one click, toggle and configure live. Bundled plugins ship with Elowen; the rest you add yourself.

Platforms

Discord, WhatsApp

Chat surfaces the agent lives on

Tools

files, terminal, mcp, subagent, askuser

Actions the agent can take

Memory

long-term recall

Events and facts across conversations

Automation

cronjob

Scheduled and recurring work

UI

statusline, runtime-context

Chat surface extras

Security

security-scan

Advisory safety checks

Development

skills

Authoring capabilities

Build your own

A manifest + one ESM file. Read the plugin API in the docs.

Your rules

Role-based access, per user.

Elowen ships full RBAC. The headline isn't the two roles — it's that every user can have a different set of tools, models and projects. The agent you chat with only ever wields what you're allowed to use.

  • Two roles, per-user grants Admin and member — and each user carries a different set of tools and permissions, not just a role.
  • Tools per person Give one user the terminal and files tools, another only chat. Enforced at the data layer, not the UI.
  • Scoped to projects Each user sees and acts on only the projects you assign — the agent never wanders outside them.
  • Models per user Choose which executors and models each person may run, per account.
  • Teams on Discord Invite your team to a shared Discord server. Each member gets their own permissions — one agent, many contributors, zero friction.
localhost:4500/users
The Users module — per-user tool and project grants
Users · per-user tools, models and project access
Watch & steer

Let it run. See everything.

When you hand the agent a bigger goal, these surfaces are your window onto it — a real web UI for planning, dispatching and watching, not a wrapper around a CLI.

Dashboard · The primary agent, live — what it’s doing right now, spend, decisions and today’s tasks.
Tasks & missions · Break a goal into ordered phases; watch each task run with live output and token cost.
Live sessions · Real tmux panes streamed to the browser — jump in and intervene with one click.
Kanban · Open, in-progress, blocked and closed — mission progress at a board’s glance.
Timeline · A live activity feed across tasks, missions and signals, merged with commit history.

Autopilot, end to end

Hand it a one-line goal and Elowen runs the whole loop autonomously — decomposing, dispatching agents and gating anything destructive until it lands a reviewed pull request.

  1. 01

    Goal

    Define the outcome you want to achieve.

  2. 02

    Mission

    Elowen decomposes the goal into ordered phases.

  3. 03

    Agent

    A coding agent picks up each phase and executes.

  4. 04

    Approval

    You review and approve before anything destructive runs.

  5. 05

    PR

    A clean pull request lands on your branch.

Under the hood

What it runs on.

Deliberately small: one Node daemon plus a Next.js UI over a single SQLite file. No external services, no heavy runtime — small enough to self-host on a modest box, clean enough to read end to end.

Node.js ≥22
ESM-only daemon
tmux ≥3
agents in isolated sessions
Hono
REST API on :4400
SQLite (WAL)
one file, better-sqlite3
Next.js
web UI + BFF proxy on :4500
Brain engine
embedded, multi-provider
SSE event bus
everything live, no polling
Web Push
PWA notifications
Works with any model
AnthropicOpenAIGitHub Copilot (OAuth)OllamaLocal modelsAny OpenAI-compatible
Agent-agnostic executors
Claude CodeOpenCodeCodex

Route each task to a coding-agent CLI by label — plus a built-in MCP server and real-PTY WebSocket terminals.

Open source. Built for builders.

Elowen is 100% open source and self-hosted. Run it anywhere, read every line, extend it with plugins, and shape where it goes. A clean, tested codebase — ~1,720 daemon and ~560 web tests keep it honest.

github.com/dragocz95/elowen Open
  • MIT licensed Permissive, no strings. Fork it, embed it, ship it.
  • Self-hosted & local-first Your machine, your models, your data. No SaaS lock-in.
  • Plugin marketplace Extend the agent from a curated registry — or publish your own.
  • Agent-agnostic Claude Code, OpenCode, Codex, Ollama — route by label.
Get started

Run your own agent in a minute.

One global package, one command, then open the dashboard in your browser. No separate services to wire up.

bash — Elowen
$ npm install -g elowen
$ elo up

✓ Elowen is running at http://localhost:4500
Other install options (Docker, build from source)
Build from source
$ git clone https://github.com/dragocz95/elowen.git
$ cd elowen && npm install && npm run build
$ node dist/daemon/index.js

A minimal Docker image (node:22-alpine + tmux) and full setup steps are in the install docs.