elbi¶
Give your agent an empirical memory.
Dig deeper. Build on what you find.
elbi is an open-source data-science harness for the agent you already use
(Claude Code, Cursor, Codex, or your own). With elbi, your agent can save
what it learns from your data as a derivation, so later sessions and any agent you
connect can dig deeper and build on it. Derivations are Python functions, so you can
read exactly how a finding was computed, write your own, and check, correct, or throw
out any of them. elbi comes batteries-included, with a local data-science environment
for notebooks, SQL, and AutoML.
from elbi_core import Artifact, Context, Dataset, derivation, serve
@derivation(
inputs={"customers": Dataset("customers")},
serve=serve.table(title="Churn rate by plan"),
)
def churn_by_plan(ctx: Context) -> Artifact:
"""Share of customers who churned on each plan, with the count behind it."""
counts: dict[str, list[int]] = {}
for r in ctx.input("customers").rows:
tally = counts.setdefault(r["plan"], [0, 0])
tally[0] += int(r["churned"])
tally[1] += 1
return Artifact.table(
[
{"plan": plan, "customers": n, "churn_rate": round(churned / n, 3)}
for plan, (churned, n) in sorted(counts.items())
]
)
Where this fits¶
Frontier agents can write SQL, fit models, and reason about statistics, and many keep notes or memories between sessions. What they lack is a place to keep what they learn from data together with the work behind it. elbi is that place: an empirical memory where each saved finding shows its work, and any agent you connect can build on it. Alongside it, elbi gives agents tools for the analysis itself, from mapping a dataset to running statistical checks on a claim and training models. It works with your semantic layer rather than replacing it: a derivation can take a governed semantic model, such as one described with OSI, as an input. Your agent still does the reasoning.
It runs on your machine¶
Everything documented here runs locally with no account and no sign-in. Nothing leaves your network unless you point it somewhere.
Next¶
- Getting started: scaffold a project and connect your agent to it over the Model Context Protocol (MCP).
- Serving over MCP: the tools your agent gets, and how each client connects.
- Upgrading:
elbi update, and the command for your install. - Authoring derivations: the SDK in depth.
- Agent-authored derivations: how an agent records what it found.
- The CLI:
init,dev,validate. - The Open Derivation Spec (ODS): the open standard.