PostgreSQL · MySQL · SQLite

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. 1

    Ask

    Type a question or paste a SELECT. The agent reads your schema, including foreign keys, to understand how tables connect.

  2. 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. 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. 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.

Works withPostgreSQLMySQL / MariaDBSQLiteOpenAI-compatible APIs
  • 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