Auto summary & semantics
Dory reads counts, freshness, and relationships to describe what a table holds and why it matters.

The AI-powered Data Studio you’ve been waiting for.
Query databases, understand tables, and chat with data — all in one modern workspace.
No context switching. No hallucinated fields. Just accurate SQL and real results.
Schema-aware autocomplete and SQL generation keep the AI honest — every suggestion is based on real tables, real fields, and real joins.

Automatically generates table-level overviews, semantic annotations, and usage cues so AI understands business data before it writes SQL.
Dory reads counts, freshness, and relationships to describe what a table holds and why it matters.
Each column gets a short semantic note plus hints about ranges, cardinality, and helpful joins.
Data distributions, skew, and business notes supply the grounded context AI needs for trustworthy SQL.

Dory’s Chatbot is not a generic AI assistant. It’s a database-native copilot that understands your schema, writes real SQL, and helps you explore data through conversation.

Local-first, responsive
Queries, personal settings, and workflows stay on your computer so privacy and control never leave your hands.
SSH tunnels wrap every connection in strong encryption, so your credentials, queries, and data never leave your network in plain text.
Save queries, context, and results so you can rerun and build on work again and again.
A clean, restrained interface that keeps you immersed in the rhythm of your work.
Light, dark, and multiple accent themes adapt to your environment while keeping the visuals readable and comfortable.
Apache 2.0 licensed, extensible, and ready for self-hosting.
docker run -d --name dory \
-p 3000:3000 \
-e BETTER_AUTH_URL="http://localhost:3000" \
-e DS_SECRET_KEY="$(openssl rand -base64 32 | tr -d '\n')" \
-e BETTER_AUTH_SECRET="$(openssl rand -hex 32)" \
dorylab/dory:latestdocker run -d --name dory \
-p 3000:3000 \
-e BETTER_AUTH_URL="http://localhost:3000" \
-e DS_SECRET_KEY="$(openssl rand -base64 32 | tr -d '\n')" \
-e BETTER_AUTH_SECRET="$(openssl rand -hex 32)" \
dorylab/dory:latest