Local retrieval over your schema and a local model to write the SQL. Nothing about your database reaches anyone else’s server.
Tools describe themselves as local when the retrieval index sits on your machine while the model call still goes to a hosted API — which means your schema and your question leave your network on every request. Both halves matter. SQLore keeps the index local always, and with a local model configured, the generation step is local too, which is the point at which "private" stops being a policy and becomes a network fact you can verify with a packet capture.
A local model is smaller than a frontier hosted one, and on the hardest questions — a five-table join with a window function over an inconsistently named schema — that shows. The trade is real and worth stating plainly rather than talking around.
Stay local by default and reach for a hosted model on the questions that need one. Because it is a per-connection choice, the database with customer data in it can be local-only while the staging one is not — which is a policy you can actually enforce, rather than a habit you have to maintain.
The same guarantees apply whichever model wrote the query: parsed to an AST, validated to a single read-only SELECT, executed on a read-only connection under a statement timeout, and shown to you in full with the answer. A local model is not a more trusted model — it is a more private one.
More answers on the main FAQ, or ask us directly.
Air-gapped & regulated
The category, explained
PostgreSQL
Every page in this section covers a different question about the same product. See all solutions.
Start free, upgrade when you are asking enough questions for it to matter.