Prove read-only, do not promise it.
LEDAR asks PostgreSQL what the role is permitted to do and shows the answer. A role that turns out to be a superuser is refused, and there is no button to override that.
An AI employee on your own machine
You inherited a database you did not build. LEDAR reads it without writing to it, explains what is in there in plain language, and tells you exactly where its knowledge stops.
The situation
Not a data engineer. Not looking for a query tool. You have a connection string and a system that has to keep working.
Pointing a language model at the whole codebase is the obvious idea, and it is the wrong one: it is slow, it costs a lot, and the answer it gives you comes from code rather than from the rows that actually exist. LEDAR reads the running database instead, then answers from what it measured there.
How it works
Five fixed questions, one scan, and a map. After that you ask in your own words and get a timeline back.
LEDAR asks PostgreSQL what the role is permitted to do and shows the answer. A role that turns out to be a superuser is refused, and there is no button to override that.
Constraints, relationships, row counts and sizes. Foreign keys the database declares, plus implicit links it measures and marks as measured — never a link it merely guessed from a column name.
Type "I paid but no order appeared". LEDAR walks the map from the customer to the payment to the order and answers with a timeline, naming the point where the trail breaks.
The product contract
Every answer states what was not looked at. A negative claim with no coverage boundary is refused rather than softened.
Every answer states what it looked at and still cannot explain. A route it could not afford to walk is named, not dropped.
What the database enforces, what you told it, and what it merely observed never look alike on screen.
It never writes to your database. Not a migration, not a fix, not once. The most it will do is print SQL for you to run yourself.
What leaves your machine
Not a sample. Not a redacted one. Not a count of one person’s orders.
When you ask a question, LEDAR sends your question and a list of table and column names to the model you configured, so it can pick which part of the database the question is about. That is schema, not data — but it is not nothing, and calling it nothing would break the two letters in the middle of the name.
Measured, not asserted
Hover any figure on this site and it will name the command that produced it and the day it was run.
The scanner has been run against a 344 million row MusicBrainz copy and a 12 GB crates.io copy, not only against a toy sample. On MusicBrainz it found that all 758 declared foreign keys are marked NOT VALID — meaning the database is not enforcing a single one of them. That is the kind of thing nobody types a query to look for.
Admit
A product whose middle letters are Disclose and Admit does not get a landing page that only lists wins.
The full list, including the measurements that came out badly, is on the status page.
Run it
Two ways in. Both end at the same window, and neither asks you to make an account.
From the Microsoft Store. One click, and Windows keeps it updated: the LEDAR listing. The package is signed and went through Microsoft certification, which is a check on the package — not on the conclusions it draws.
From source, if you would rather read the code first. You need Node 22 or newer.
git clone https://github.com/ledar1106/ledar-src.git
cd ledar-src
npm ci
npm run desktop
Building from source, the first launch downloads the Electron binary, about ~100 MB, once — the Store build already carries it. Either way you then paste a connection string, and LEDAR proves the connection is read-only before it reads anything.
On the Microsoft Store, runs on your machine, and tells you what it did not look at.