For nerds

How Lumi works under the hood

Lumi is a frontier model tool-use agent that runs on your machine. It plans queries, calls read-only connectors, grounds every number in a real result, and keeps its memory in a local database. Here is the whole thing, honestly.

01

The whole system

One process, on your device. The platform holds the moving parts (context, planning, the tool registry, a semantic graph of your data, memory, suggestions, and insights). Below it sit the connectors, all read only. The only thing that leaves your machine is the model call to a frontier model.

Layered architecture. A frontier model sits on top and is the only external dependency. Below it, the on-device Lumi platform contains Context, Query Planner, Tool Registry, Semantic Graph, Memory, Suggestions, and Insights. Below that sits a row of read-only connectors: Postgres, MySQL, MongoDB, Microsoft Fabric, REST, Shopify, Excel, PDF, and Web.
02

A question, end to end

You ask in plain English. The planner runs a tool-use loop with the model, which selects read-only tools rather than guessing. The connector runs the actual query against your data, rows come back into the loop, and the model writes the answer on top of real results. If it cannot ground a number, it says so instead of inventing one.

A question flows left to right: the user asks in plain English, the Query Planner runs a frontier model tool-use loop, it picks read-only tools, the connector runs the query against your data, results return, and the model writes a grounded answer with a result table. It reads only and never writes, and the numbers are grounded, never hallucinated.
03

The connector contract

Every connector implements the same four methods. That is the whole surface. Adding a new source, even a single file, is just a new implementation of this contract. A dropped-in file becomes a first class integration.

methodwhat it does
connect()Open a read-only session to the source.
introspect()Learn the schema and build the semantic graph.
sample()Pull a small, safe sample to ground shapes and types.
tools()Expose read-only query tools the planner can call.

tools() only ever exposes read paths. There is no write() in the contract.

04

On-device memory

Memory is two tools, remember and recall, backed by a local SQLite database. What Lumi learns about you and your work is written there and read back into context on the next turn. That file stays on your disk. There is no server to upload it to, so privacy is a property of the architecture rather than a promise in a settings page.

Memory flow: the Query Planner calls remember and recall tools. Remember writes to a local SQLite database on the device. Recall reads from it. That database never leaves the device, and its contents feed back into the planner's context. Privacy is structural.
05

The insights engine

The insights engine scans your data on a schedule, ranks candidate findings by how notable they actually are, and holds them to a threshold. When something clears it, you get the finding and the chart behind it. When nothing does, it returns nothing. Silence is the default, and it is a feature.

The insights engine scans your live data, ranks candidate findings by how notable they are against a threshold, and either surfaces the notable ones or returns nothing when nothing is notable.

Read the answer, then check the query

Lumi shows its work. Download it, point it at something real, and watch the tool calls happen.