Skip to main content
Glama

LumenCore

The local-first memory layer for AI agents โ€” one you can actually sit down and watch.

LumenCore is a local Model Context Protocol (MCP) server that gives AI coding assistants (Claude Code, Cursor, and ~15 others) persistent memory across sessions โ€” architectural decisions, code patterns, domain concepts, and project history. No Docker, no API keys, no cloud. Just npm install and a SQLite file on your machine.

What makes it different from other memory tools:

  • ๐Ÿง  Deliberate memory โ€” agents store knowledge by choosing to, not by silently vacuuming every turn.

  • ๐Ÿ–ฅ๏ธ A real dashboard โ€” lumencore ui is a Linear-style local web app to browse, search, edit, and watch a live force-directed graph of what your agents know.

  • ๐Ÿ”Œ One-command install โ€” auto-detects ~15 MCP clients and wires them up; WSL-aware (bridges Windows tools to your WSL brain).

  • ๐ŸŒ Networked โ€” optionally serve one shared brain across machines over your LAN/Tailscale.

  • โš–๏ธ Conflict-aware โ€” detects overlapping memories and supports supersession, so old facts don't silently contradict new ones.

  • ๐Ÿ”’ Local & private โ€” everything stays in local SQLite; the default install makes zero network calls.


Install

npm install -g lumencore
lumencore install        # detect your AI clients and connect them (interactive)

lumencore install finds the MCP clients you have and registers LumenCore with each. On WSL, it also offers to connect your Windows-side clients to the same WSL brain.

lumencore install --list        # show what's detected (incl. Windows-side on WSL)
lumencore install --yes         # connect everything detected, no prompts
lumencore install --dry-run     # preview, write nothing
lumencore install --client cursor --global
lumencore install --no-windows  # (on WSL) skip the Windows bridge

Every write is merge-aware (your existing config is preserved) and backed up (*.lumencore.bak) first.

Supported clients

Auto-configured by lumencore install:

Format

Clients

JSON

Claude Code, Claude Desktop, Cursor, Cline, Roo Code, VS Code / Copilot, Zed, Gemini CLI, LM Studio, Junie, Amazon Q, Warp

TOML

OpenAI Codex CLI

YAML

Goose, Continue.dev

Detected but manual (no writable config): Witsy, Cherry Studio.


Related MCP server: Memory MCP

Quick start

cd /your/project
lumencore init           # writes CLAUDE.md + .lumencore.json, scans the project
lumencore ui             # open the dashboard at http://localhost:4317

Then just use your agent. When it makes a decision worth keeping, it calls remember; when it needs context, it calls recall.


CLI commands

Command

What it does

lumencore install

Detect AI clients and register LumenCore (WSL-aware, multi-select)

lumencore ui

Launch the local web dashboard (127.0.0.1:4317)

lumencore serve

Start the stdio MCP server (used by local clients)

lumencore serve-http

Start the networked memory API (share one brain over LAN/Tailscale)

lumencore init

Set up the current project (CLAUDE.md, .lumencore.json, scan)

lumencore backfill

Name legacy memories by reverse-mapping project hashes โ†’ paths

lumencore setup

Global setup wizard (memory scope, data dir)

lumencore status

Show config + memory stats

lumencore export

Export memories to JSON (--global, --all, -o file)

lumencore reset --force

Delete all data


MCP tools (what your agent can call)

Tool

Purpose

lumencore_activate

Load project context at session start (auto-called)

remember

Store a memory (category, title, content, tags, importance, scope, source, confidence, expires_at)

recall

Full-text search; bumps access tracking

list_memories

Browse memories

update_memory

Edit a memory in place

forget

Delete a memory

supersede_memory

Mark one memory as replaced by another (links both)

check_conflicts

Find memories overlapping a prospective one, before writing

capture_turn

After an exchange, suggest what's worth remembering (you confirm)

init_project

Scan + capture a new project

Deliberate by design: LumenCore never auto-captures your edits or chat. Memory only changes when the agent explicitly calls remember / update_memory / etc. capture_turn suggests; the agent confirms.


How memory works

Categories: decision ยท pattern ยท concept ยท note ยท task Importance: 1โ€“5. Scope: project (default) or global (shared across projects).

Each memory also tracks source, confidence, tags, access_count / last_accessed, optional expires_at, and supersession links (supersedes / superseded_by).

Retrieval

FTS5 full-text search ranked by BM25 relevance (title/tag matches weighted above body), then nudged by soft priors โ€” importance and recency multiply the score but never override relevance. (Recently-recalled is driven by the access tracking, so the dashboard shows what your agents actually use.)

Conflicts & supersession

On every remember, LumenCore looks for overlapping memories and returns a "possible conflict" envelope. The agent resolves it next turn with supersede_memory (old โ†’ new), update_memory, or by letting them coexist. Superseded memories drop out of future recalls and conflict checks.

Per-project policy โ€” .lumencore.json

lumencore init writes a small file at the repo root:

{ "name": "my-project", "allowGlobal": false }
  • name โ€” a stable project identity (survives path moves / reclones).

  • allowGlobal โ€” may agents in this repo write global memories? Default false (local-only, privacy-safe). Set it with lumencore init --allow-global. Global writes from a local-only project are refused server-side.


The dashboard โ€” lumencore ui

A dependency-free, Linear-style local web app at http://localhost:4317 (loopback only). Reads your SQLite directly.

Route

Dashboard

stats ยท recently written ยท recently recalled ยท projects

Project

filter by category / importance / tag, sort, search

Memory

view + edit (title, content, tags, importance), delete, supersede; markdown preview

Graph

live force-directed graph โ€” nodes = memories (colored by category), edges = shared tags + supersession, clustered by project; new memories spring in, recalled ones pulse; zoom / pan

Global ยท Search ยท Timeline ยท Live

global-scope browse ยท cross-project FTS ยท group-by-day ยท streaming write/recall feed

Settings

data dir, scope, version, dark/light + accent toggle

โŒ˜K

command palette โ€” jump to any project, search memories, navigate


Networked memory (shared brain)

Run one LumenCore as a memory server that remote agents share over your LAN/Tailscale:

lumencore serve-http --host <tailnet-ip> --port 4318 --token <secret>

Exposes a small HTTP API โ€” GET /v1/health, GET /v1/recall, POST /v1/remember, GET /v1/list โ€” with Bearer-token auth. Projects are addressed by stable name, so the same logical project resolves identically from any machine.

Note: this is a REST API for custom integrations (see integrations/). Generic MCP-over-HTTP for arbitrary MCP clients is on the roadmap.

WSL โ†’ Windows

On WSL, lumencore install detects your Windows-side clients (under /mnt/c/Users/<you>) and registers them to launch LumenCore through wsl.exe โ€” so your Windows tools and WSL tools share one brain, no duplicate install.


Architecture & data

 client (Claude Code / Cursor / โ€ฆ)
   โ”‚  MCP (stdio)            โ–ฒ  HTTP (serve-http, optional)
   โ–ผ                         โ”‚
 LumenCore  โ”€โ”€โ–บ  SQLite + FTS5  (one DB per project + a global DB)
{dataDir}/projects/{project-id}/memories.db
{dataDir}/global/memories.db

Config lives at ~/.config/lumencore/config.json (XDG; platform-appropriate on macOS/Windows). All data is local โ€” no external services on the default install.


Optional integrations

The integrations/ directory holds optional, out-of-core glue (not compiled into the CLI):

  • integrations/hermes-agent/lumencore/ โ€” a memory-provider plugin for the Nous Hermes Agent that makes a networked LumenCore (serve-http) Hermes's selectable memory.provider.


Requirements

  • Node.js โ‰ฅ 18

  • An MCP-capable AI client

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arclightdynamics/lumencore'

If you have feedback or need assistance with the MCP directory API, please join our Discord server