The safe way to turn natural language into database queries

Ask in plain English.
Get a trusted query.

QueryForge AI turns natural language into validated and parameterized database queries without giving an LLM direct control over your database.

{{ line }}
{{ bk }}
Apache 2.0 · Open Source · Read-only by design
queryforge translate — orders.config.json
> {{ heroSentenceTyped }}▏
QUERY AST
{{ line }}
POSTGRESQL
{{ heroSql }}
01 · The problem

AI can generate queries. But should AI control your data?

A user asks: “Show me customers from India who haven’t ordered in 6 months.” A basic AI integration may turn that request directly into a database query. That can create serious problems.

{{ b }}

AI is good at understanding language. It should not be responsible for enforcing your application’s rules.

02 · The solution

Put a control layer between AI and your data.

Instead of → {{ node.label }}
QueryForge creates → {{ node.label }}

The AI understands the request. QueryForge validates it against your rules, applies access controls, and generates the database query.

Your AI can understand the user.
Your application stays in control.

03 · Why QueryForge

Built for safe AI-powered data access.

{{ f.num }}
{{ f.title }}

{{ f.body }}

04 · Use cases

Let users ask questions about your data.

Your users shouldn’t need to know SQL, MongoDB, or Elasticsearch to find the information they need. QueryForge lets them ask naturally.

{{ u.label }}
“{{ u.ask }}”
{{ useCaseCallout.title }}

{{ useCaseCallout.body }}

Try QueryForge →

One simple question.
One controlled query pipeline.

05 · Configuration

You define the rules. QueryForge enforces them.

Your configuration tells QueryForge how your data should be used. You control:

{{ c }}

Simple configuration. Consistent behavior.

Field
status
{{ row.k }} {{ row.v }}

A field the model may not query at all is one flag: "queryable": false — and "returnable": false keeps it out of the default projection too.

06 · Multiple databases

One request. Multiple databases.

Your application should not need a different AI integration for every database. QueryForge uses the same validated query plan and generates the format required by your backend.

QUERY AST
{{ b.name }}
{{ b.note }}

One intent. One validation layer. Multiple backends.

07 · Governance

AI shouldn’t decide what users are allowed to see.

Access rules belong to your application — not the AI. Your application already knows:

{{ g }}

QueryForge keeps these rules separate from the user’s natural-language request.

Secure by design. Controlled by your application.

res, err := engine.Translate(ctx, "delivered orders over 500 dollars", "sql", qf.Scope{
    "subscriptionId": session.SubscriptionID,
    "userId":         session.UserID,
    "enterpriseId":   session.EnterpriseIDs,
})
Compiles to
WHERE (enterprise_id IN ($1, $2) AND subscription_id = $3
       AND user_id = $4 AND status = $5 AND amount > $6)
-- args: ["E-1", "E-2", "SUB-42", 9, "DELIVERED", 500]
08 · Safe failure

Sometimes the right answer is “No.”

A production AI system should not always try to answer. When a request is invalid or unsafe, QueryForge rejects it.

{{ r.label }}
“{{ r.ask }}”
{{ r.result }}

{{ r.why }}

A safe AI system knows when not to answer.

09 · Developer experience

Add QueryForge to your application.

QueryForge is designed to work with your existing backend.

{{ i }}

Your application provides the configuration and model connection. QueryForge handles the query planning, validation, rules, and generation.

No database connection required. QueryForge generates the query. Your application remains responsible for executing it.

10 · Open source

Open source. Easy to inspect. Built for developers.

QueryForge is available under the Apache 2.0 license. The core query pipeline is designed to be tested without an API key or database connection. You can inspect how QueryForge:

{{ o }}

Don’t just trust an AI layer. Inspect it. Test it. Control it.

Your users already know what they want.

They shouldn’t need to learn SQL to use your application. Let them ask naturally. Give your application a controlled way to understand them.

Ask naturally. Control what matters.

Try QueryForge View GitHub by Amtry