Skip to main content

A tool for generating LLM context from database tables

Project description

sqlctx

sqlctx or (SQLContext) is a tool for generating LLM context from database tables. It is targeted at data practioners as a force multiplier, codifying the process of providing table schema to LLMs inside of AI-enabled code editors.

Rather than existing as an editor extension, SQLContext outputs context about your database to a directory (./sqlctx/{schema_name}/{database_name}/{table_name}.yml) on a per table basis so that you can include them with any LLM-enabled editor by mentioning the file for that database table. Alternatively, there's a combined.yml file that includes output from all the columns from all the tables for long-context LLMs.

Inside each yml file is metadata like the table, database, & schema names, as well as sample values for each column. If you have set column or table comments using tools like DBT or SQLMesh, they will also be extracted.

SQLContext pairs well with:

  • Visual Studio Code
  • Cursor
  • Zed
  • Windsurf

SQLContext supports databases that use the following protocols:

  • DuckDB
  • Postgres
  • MySQL

Getting Started

Start by installing either uv or pipx to run python CLIs without installing to system packages.

Configuration

SQLContext can be run on demand or configured. To configure for a given directory, run the following to generate a config file. You will need your database connection information handy.

uvx sqlctx add or if you're using pipx pipx sqlctx add

A config file will be written to .sqlctx/config.toml. You can embed environment variables directly in the toml like ${ENV_VAR} and they will be replaced if the variable has been set.

Generating Context

You can generate context with the uvx sqlctx generate command. It will be written to the relative directory ./sqlctx.

It is recommended that you check this directory into your repository and not gitignore, since your editor likely does not treat gitignored files the same as regular project files, and this will break the expected editor workflow.

Consuming Context

Since most AI editors allow mentioning files, SQLContext relies on this. When writing a new query, simply "mention" a table to include the schema and a few sample records in the context of your chat.

For example, if I'm writing a query calculting ARPU, I might choose to mention my sessions table and revenue table, since I know these are relevant.

  1. Visual Studio Code - CMD + / from any copilot input to include any project file
  2. Zed - CMD + / from the context pane to include any project file
  3. Cursor — @-mention the relevant tables in chat, composer, or inline edit
  4. Windsurf - @-mention the relevant table from the Cascade UI

Many editors also have a RAG-search that surfaces relevant files without explicit mention, but explicitly mentioning relevant tables tends to lead to the highest quality generations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlctx-0.1.5.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlctx-0.1.5-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file sqlctx-0.1.5.tar.gz.

File metadata

  • Download URL: sqlctx-0.1.5.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for sqlctx-0.1.5.tar.gz
Algorithm Hash digest
SHA256 f7e9ab3afa5c2e61432a26c9377c6d91c8e39cb7473554145ecb8d0a9cc06aa2
MD5 ab679affa3e49c6bd438be338d16a43c
BLAKE2b-256 e94f24756d1fab56449f2f283f3f5f72b33ccae28d4b31f4e3715849cc1cb6aa

See more details on using hashes here.

File details

Details for the file sqlctx-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: sqlctx-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for sqlctx-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f98423c798f0777e7114f27749a13c74de1136a7d33b0ed0ff4715edda03208
MD5 abbf3df6eceb68e24e1ada27f11cfa4c
BLAKE2b-256 4c650a5e78f3d0cd7a77daca4fcdf2e07d4af9264c01c3fc91c9344c723de6f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page