Live demo
EKOS compiled the open-source iDempiere ERP — its Java code, 31,620 schema changes in its migration scripts and the live PostgreSQL database — into an evidence-backed knowledge ledger: 156,487 objects and 281,840 relationships, among them 1,233 tables and 3,128 foreign keys. The demo lets you use that knowledge two ways.
Ask your data
Ask a business question in plain words — “invoiced total per business partner”. EKOS writes the SQL from its compiled schema with its own agent, checks it, and the answer comes back with a log of every EKOS step: which tables it read, the joins it used, the SQL, how long each step took.
Open Ask your dataSign in with Google · or with GitHub
The EKOS console
Browse what EKOS compiled: tables and their columns, keys and joins, routines, the change history of the schema, where the code and the database disagree, and the evidence behind each fact. Read-only.
Open the consoleSign in with GitHub or Google
How an answer is made
- EKOS writes the SQL with its own text-to-SQL agent (
ekos_sql_generate), over only the 25 tables questions may use, and checks every draft against the compiled schema. A question that would change data is refused: no SQL comes back. - The schema comes from EKOS, not from the database: Superset reads the tables, columns and joins of the
tables the SQL uses as EKOS compiled them (
ekos_ossie_export) and checks the query against them before it runs. - Dashboards: Superset's model designs the charts from EKOS's schema, and every chart's SQL is checked by
EKOS (
ekos_sql_check) before anything is created. - Nothing is guessed: a table EKOS has not compiled cannot be queried, and if EKOS cannot answer, the question is not answered — the page says which step failed and why.
- The query runs read-only on the sample database and returns at most 200 rows.
Measured on 9 November 2026
Recorded live on this demo (EKOS 1.4.5, Superset fork ekos.16); times are the page's clock, from click to answer.
| Asked | Answer | Time |
|---|---|---|
| What does Joe Block buy the most? | Azalea Bush, 10 units — 4 tables, 7 joins, written by EKOS's agent | 5.1 s |
| Which customers have unpaid invoices, and how much is open? | Joe Block 228.85 · C&W Construction 161.12 | 10.3 s |
| How much have we bought from each vendor? | Tree Farm Inc. 4,217.50 · Seed Farm Inc. 2,731.50 | 5.1 s |
| Delete all invoices of Joe Block | Refused by EKOS — nothing was run | 5.1 s |
| Sales overview: invoiced amount per customer, top products by revenue, sales orders per month | A dashboard of 3 charts, each chart's SQL checked by EKOS | 15.4 s |
Why trust the SQL
The agent behind ekos_sql_generate was measured on BIRD, a public text-to-SQL benchmark on
real databases, scored by execution (the result rows must match). With Claude Haiku 5.5:
| BIRD Mini-Dev, 302 held-out questions | Execution accuracy |
|---|---|
| Raw table definitions in the prompt | 53.3% |
| EKOS context pack | 63.9% |
| EKOS agent with verification | 76.2% |
| BIRD New Dev, 1,534 questions | |
| EKOS agent with verification and evidence | 65.84% |
BIRD's databases are SQLite and far smaller than an ERP, and it measures the SQL, not the guardrails around it.
Limits
- 50 questions per person per day, 300 for everyone together (UTC days).
- After a restart EKOS rebuilds its caches; a job keeps them warm, so this is rare.
- Answers are written with the help of an AI model and can be wrong — the SQL is always shown so you can check it.
What works, and what does not yet
- Works: sign-in, the read-only console over the compiled iDempiere project, text-to-SQL and text-to-dashboard over 25 business tables (orders, invoices, payments, partners, products, prices, shipments, stock).
- Not yet: the Iceberg lakehouse copy of iDempiere as a second source (built and loaded once, now switched off); live probes of the database while EKOS writes SQL (its PostgreSQL reader has no TLS yet), so its checks are static.
- Known quirk: opening Ask your data straight from a link can show “Access is Denied” right after sign-in — open Ask (AI) from Superset's menu.
By signing in you accept the Terms of Service; what is kept is in the Privacy Policy.