Ask your database anything.
Approve every query.
Queryroom turns plain-language questions into SQL, shows you exactly what it will run, and executes it read-only, only after you approve it.
- Runs on your own server
- Credentials encrypted in your browser
- Any OpenAI-compatible model
Product demo: a user asks “Which customers ordered the most last month?”, reviews the generated SQL, approves it, and gets a table of the top five customers.
From question to answer, with you in the loop
Every answer follows the same four steps. The only way a query reaches your database is through your approval.
- 1
Ask
Type a question or paste a SELECT. The agent reads your schema, including foreign keys, to understand how tables connect.
- 2
Draft and check
The model drafts one read-only query. A SQL parser checks it, and if it fails the model gets the errors and corrects it.
- 3
You approve
See the exact SQL and the tables it reads. Approve it, edit it yourself, or reject it. Edits are checked again.
- 4
Run read-only
The query runs in a read-only transaction with a timeout and row limit. Results come back as a table you can export.
Everything you need to question your data safely
Built for people who want answers from a database without handing it over to a model.
Plain language to SQL
Ask the way you would ask a colleague. Works with any OpenAI-compatible chat model, hosted or on your own endpoint.
Approval before every query
Nothing touches your database until you have read the SQL and pressed approve. Approvals are single-use.
Edit before you run
Adjust the generated SQL inline. Your edits go through the same safety check before they can run.
Read-only by design
Only a single SELECT or WITH passes. Writes, locks, comments and admin functions like pg_* or SLEEP are rejected.
Self-correcting drafts
When a draft fails the safety check, the model sees exactly why and gets two attempts to fix it.
Enforced limits
Every query gets an outer row limit, a statement timeout and a response-size cap that you configure.
PostgreSQL, MySQL, SQLite
Connect to PostgreSQL, MySQL or MariaDB, or a local SQLite file. Tables, columns and relationships are discovered automatically.
Table allowlist
Limit the agent to the tables or schemas you choose. Everything else is hidden from the model and blocked.
Instant catalog answers
Table lists and row counts come straight from database statistics, with no model call and no slow COUNT(*).
Bring your own SQL
Paste a query and it goes through the same checks and approval as generated SQL.
Results you can use
Scrollable tables with the executed SQL alongside, copy, full screen, and export to CSV, JSON or Excel.
Conversations
Keep a history per topic, rename or delete it, and stop a running request at any time. Light and dark themes.
Your data stays yours
Queryroom is built so that a model can help you write queries without ever holding the keys to your database.
- Credentials and chat history are encrypted in your browser with AES-GCM. The key comes from your passphrase through PBKDF2 with 600,000 iterations.
- The model sees your question, the schema, your optional description and earlier questions with their SQL from the same conversation, never your credentials or query results.
- The server keeps nothing between requests. Pending approvals live in your browser, and any SQL you approve is checked again on the server before it runs.
- Optional Basic authentication, a database host allowlist and a SQLite directory allowlist for shared deployments.
- Designed as a second layer: connect with a read-only database user and both protections apply.
Questions
What people usually want to know before connecting a database.
Your question, the table and column names with their types and relationships, the description you gave the database, and earlier questions and SQL from the same conversation (so follow-ups work). It never receives your credentials or the rows your queries return.
Ready to ask your first question?
Connect a database, add a model key, choose a passphrase. That is the whole setup.
Open workspace