Open source · Self-hosted · Team-ready

Query, Explore, Ship. Without friction.

The modern SQL client built for developer teams. Write safer queries, get AI-powered suggestions, and share everything with your team.

$ docker run -p 5173:5173 eodia/dblumi
regions_by_revenue.sql ×
churn_cohort.sql ×
Start writing SQL
or press ⌘K to ask the copilot
10 rows · 51 ms Sort Explain
# region revenue
1North America1,245,320
2Europe987,410
3Asia Pacific754,192
4Latin America412,876
5Middle East298,540
6Africa187,320
7Oceania142,890
8Caribbean98,720
Rows per page 100 ▾ · 1–10 of 47 « 1 2 3 »
SQL Editor

Write SQL fluently.

A keyboard-first editor that knows your schema. Tab-complete columns, joins, and relationships — then multi-tab across postgres, mysql, oracle and sqlite in the same window.

  • Schema-aware autocomplete on tables, columns, joins
  • Multi-tab with per-connection contexts
  • 4 drivers supported — postgres, mysql, oracle, sqlite
  • CSV import & SQL dump built-in
eodia / active_users.sql
1 -- Active users in the last 30 days
2 SELECT u.name, u.email
3 FROM users u
4 WHERE u.last_seen >= NOW() - INTERVAL '30 days'
K id uuid
c name text
c email text
c last_seen timestamp
c org_id uuid
c created_at timestamp
eodia · postgresql · Ln 4, Col 48 · SQL
AI Copilot

Your database talks back.

The copilot sees your whole schema — every table, column, relationship — and writes queries that actually run. Bring your own key: Anthropic, OpenAI, Azure or Ollama.

  • Natural language → working SQL, grounded in your schema
  • Explain, optimize, or debug any query in-place
  • BYOK — Claude, GPT, Azure OpenAI, or local Ollama
  • Your data never leaves your infra
Copilot Claude Sonnet ×

Ask me anything about your database. I know your schema.

Last 10 records Count rows per table Explain this query Generate a realistic dataset
Monthly active users by country, last quarter
Joining users.org_idorgs.country and grouping by month:
sql
SELECT o.country,
       DATE_TRUNC('month', u.last_seen) AS m,
       COUNT(DISTINCT u.id) AS mau
  FROM users u
  JOIN orgs o ON o.id = u.org_id
 WHERE u.last_seen >= '2026-01-01'
 GROUP BY o.country, m
 ORDER BY m, mau DESC;
Exclude our internal team (@eodia.fr) and sort by MAU desc
Added a filter and flipped the sort:
+ WHERE u.email NOT LIKE '%@eodia.fr' ORDER BY m, mau DESC; + ORDER BY mau DESC, m;
Applied to the editor
Which countries are growing the fastest?
Top 3 by month-over-month growth: France +24%, Germany +18%, Japan +15%. Want me to add a LAG() window to track MoM over time?
🙌 perfect, running it now
Teamwork

Share queries, not screenshots.

Save any query to your workspace and share it with the team in one click. Every edit tracked, every version restorable. Two teammates on the same query? They see each other's cursors in real time, powered by Yjs.

  • Saved queries with folders, tags and team sharing
  • Real-time collaboration — see cursors and edits live
  • Full version history — restore any previous state
  • Per-connection permissions (read-only, writer, admin)
eodia / active_users.sql
M
S
J
3 editing
1-- Active users in the last 30 days
2SELECT u.name, u.emailSarah
3FROM users uJulien
4WHERE u.
K id uuid
c name text
c email text
c last_seen timestamp
c org_id uuid
c created_at timestamp
eodia · postgresql · Ln 4, Col 11 · SQL
Everything else

All the plumbing, included.

REST endpoints, MCP server, self-hosting, 4 drivers, ERD, guardrails and i18n — every feature that matters for a production workflow.

REST API

Every query is an endpoint.

Turn any saved query into a JSON API with one click. Named parameters, API keys, rate limits — all automatic.

$ curl https://api.eodia.net/q/regions_by_revenue \
    -H "X-API-Key: sk_live_a7f…"

{ "rows": [
   {"region": "North America", "revenue": 1245320},
   {"region": "Europe", "revenue": 987410}
] }
MCP

AI agents, native.

Expose your schema as an MCP server. Claude, GPT and any agent query your DB in one line of config.

// claude_desktop_config.json
{
  "mcpServers": {
    "dblumi": {
      "command": "npx",
      "args": ["@dblumi/mcp"]
    }
  }
}
Self-hosted

Your infra. Your rules.

Docker Compose in 30 seconds. AGPL-3.0 — every feature, forever free. Your data never leaves your network.

$ docker compose up -d
Pulled eodia/dblumi:latest
Created dblumi-api
Started dblumi (3s)
http://localhost:5173
4 drivers

One UI, four databases.

Postgres, MySQL, Oracle, SQLite. Switch between flavours without breaking a sweat.

Postgres
MySQL
Oracle
SQLite
Schema ERD

See your data model.

Auto-generated diagrams you can drag, export, and share.

usersid
orgsid
ordersid
Guardrails

4 safety levels.

From unrestricted dev to fully locked prod.

L1 · Dev
L2 · Staging
L3 · Sensitive
L4 · Prod
i18n

Français, English…

Both languages shipped. More coming soon.

EN
English
FR
Français
DE ES IT + soon
One client

Say goodbye to the hassle.

Stop juggling pgAdmin, DBeaver, TablePlus and a terminal. One tool, every database.

pgAdmin DBeaver phpMyAdmin DataGrip TablePlus HeidiSQL
dblumi
All-in-one

Query, share, done.

Write SQL, save queries, explain plans, serve JSON APIs, speak MCP — all in one unified workspace.

Query
Share
Explain
API
MCP
Version history

Track every change, restore any version.

Every save creates a version. Browse the full timeline of a query, compare any two versions side by side, and restore a previous version in one click.

Timeline — Products ×
Current (editor) Currently editing
Demo 6 avr. 2026, 01:26
Demo 6 avr. 2026, 01:26 Final version
Demo 6 avr. 2026, 01:25
vs current Restore
1  SELECT
2    q.id,
3    q.reference,
4    c.first_name || ' ' || c.last_name AS customer_name,
5    COUNT(ql.id) AS number_of_products,
6    SUM(ql.line_total) AS total_amount
7  FROM quotes q
8  JOIN customers c ON q.customer_id = c.id
9  ORDER BY q.created_at DESC
10  LIMIT 1000;
10  LIMIT 100;
Easter egg

See how painful it was before dblumi.

Remember juggling 4 clients, 12 tabs, and a terminal? Us neither. We blocked it out. But we did make a game about it — collect every database before the bugs catch you.

Databases 0
Arrow keys
Game over Click to retry

One plan. All features.

Self-host for free, forever. Need support or managed hosting? We've got you.

Need help?
Enterprise support
Custom

Managed hosting, SLA, prioritized bug fixes and onboarding for your team.

  • Managed hosting on your cloud or ours
  • 99.9% SLA with email + chat support
  • Priority bug fixes and feature requests
  • Onboarding workshop for your team
Contact sales

Frequently asked questions

Can I use dblumi with my production database?
Yes. dblumi ships with 4 configurable safety levels — from unrestricted dev DBs to fully locked prod. Destructive queries are detected before they run, and every action can be scoped by user role.
Does my data leave my infrastructure?
No. dblumi is self-hosted, and the AI copilot uses your own API key (Anthropic, OpenAI, Azure, or local Ollama). Your queries, results, and schema never leave your network.
Which AI providers are supported?
Anthropic Claude, OpenAI, Azure OpenAI, and local Ollama. Bring your own API key — we never proxy requests through our servers.
How does the MCP server work?
Run the bundled MCP server binary and add it to any MCP-compatible client (Claude Desktop, etc.) in one line of config. It exposes list_tables, describe_schema, run_query, and explain_query as native tools any AI agent can call.
Is there a hosted version?
Not officially. The Enterprise support plan includes managed hosting on request — contact us if that's what you need.
What's the difference between dblumi and pgAdmin / DBeaver?
Three things: a schema-aware AI copilot, real-time team collaboration with version history, and native REST + MCP exposure for your queries. Plus a modern web UI that works on any device without install.

Write SQL better. Starting today.

Self-host in 30 seconds. AGPL-3.0, every feature included, forever free.

$ docker run -p 5173:5173 eodia/dblumi