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.
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.
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.
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.
| method | what 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.
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.
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.
Read the answer, then check the query
Lumi shows its work. Download it, point it at something real, and watch the tool calls happen.