Skip to content

vendz/NL2SQL

Repository files navigation

NL2SQL CLI

A command-line tool that converts natural language queries into SQL. It analyzes Sequelize models to understand your database schema and generates accurate queries from plain English input.

Features

  • AI-Powered: Uses Qwen 3 for intelligent SQL generation
  • Schema-Aware: Parses Sequelize models to extract table structures and relationships
  • Interactive Chat: Command-line interface with conversation history
  • Multi-Command: Built-in commands for schema inspection, model details, and more

Installation

Install globally via NPM:

npm install -g nl2sql-cli

Setup

  1. Get an OpenRouter API key from openrouter.ai/keys
  2. Set your API key:
    export OPENROUTER_API_KEY='your-key-here'
    Or create a .env file with OPENROUTER_API_KEY=your-key-here

Usage

Navigate to a project with Sequelize models and run:

nl2sql chat

Commands

  • /help - Show commands
  • /schema - Display schema
  • /models - List models
  • /explain <query> - Explain similarity scores (e.g., /explain show users)
  • /history - View history
  • /clear - Clear chat
  • /model <name> - Switch AI model
  • /exit - Quit

Improving Model Discovery

The CLI uses semantic search to find relevant tables. Help it work better by:

  1. Add comments to your models:
   // User accounts and authentication data
   const User = sequelize.define('User', { ... });
  1. Use descriptive column names:

    • email, phone_number, created_at
    • col1, data, field_x
  2. Document relationships clearly:

User.hasMany(Order, { as: 'purchases', foreignKey: 'customer_id' });

No special configuration needed - the system learns from your schema structure!

Example Queries

  • Show all users
  • Find users created recently
  • Get top products by sales
  • List orders with customer details
  • Count active users

Development

  • Requires Node.js 18+
  • Run npm run dev for development
  • Use npm run format to format code with Prettier
  • Build with npm run build

How It Works

  1. Analyzes Sequelize models in models/ directory
  2. Extracts schema (tables, columns, associations)
  3. Sends natural language + schema to Qwen 3
  4. Returns executable SQL queries

Support

Open an issue on GitHub for questions or problems.

About

A command-line tool that converts natural language queries into SQL. Seamlessly works with Sequelize models to generate queries from plain English descriptions.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors