Skip to main content

SQLite forensic analysis with local LLMs — ask questions in plain English

Project description

yourSQLfriend

Connect SQLite databases to a local LLM. Ask questions in plain English, get SQL queries and results.

Built for offline forensic analysis on a single workstation — no cloud, no telemetry, nothing leaves your machine.

Version License Python Flask

yourSQLfriend — load a database and get started

yourSQLfriend is for analysts, investigators, and developers who need to interrogate SQLite databases without sending data anywhere. Load a .db, .sqlite, .csv, or .sql file, ask questions in plain English, and get parameterised read-only SQL with full results — air-gap safe, forensic-grade.


✨ Features

🔒 100% Offline Runs on a local LLM via Ollama or LM Studio. Zero telemetry, air-gap safe
💬 Natural Language Ask "show me the top 5 customers" and get results + the exact SQL query
🔍 Search All Tables Find a value across your entire database (⌘K / Ctrl+K)
🪟 Three-Pane Workbench Schema browser · conversation · Row Inspector
🔎 Row Inspector Click any result row to expand it; foreign keys become clickable links
🕘 Query History Per-session panel of every question asked; click to jump back to that turn
📋 Interactive Tables Sort, filter, paginate results with dark/light theme
💾 Export Sessions Save your entire chat session as a formatted HTML file with hashes + timestamps
🖥️ Install as App PWA support — install as a standalone desktop app from Chrome/Edge/Brave

Ask a question in plain English — the LLM writes parameterised read-only SQL, runs it, and returns results you can sort, filter, and export.

Workbench — question, generated SQL, and paginated results
Schema browser & query history

Browse all tables, columns, types, and row counts in the left pane. Query history lives at the bottom — click any entry to jump back.

Schema browser and query history
Row Inspector

Click any result row to expand it. Foreign key references become navigable links — follow relationships without writing another query.

Row Inspector with foreign key navigation

🤖 LLM Setup

yourSQLfriend requires a local LLM running before you launch. Set one up first:

Option A: Ollama

ollama pull gemma4:26b
ollama serve

Option B: LM Studio

  1. Download LM Studio
  2. Load a model
  3. Start local server on port 1234

Once connected, the provider indicator in the top bar turns green.

Settings panel — provider connected

Context window: The system prompt is token-heavy by design. A 16K context window is the minimum; 32K or more is strongly recommended for complex schemas.

LLM model sizes: Smallest → 4B | Mid → 8-9B | Large → 14B | Largest → 26-30B

Recommended LLM families: Qwen | Gemma | Mistral / Devstral


🚀 Quick Start

Prerequisite: Python 3.10+ must be installed, and your LLM must be running (see above).

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/reisset/yourSQLfriend/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/reisset/yourSQLfriend/main/install.ps1 | iex

Then launch from any terminal: yoursqlfriend

Options: yoursqlfriend --port 8080, --no-browser, --host 0.0.0.0

Note: The Flask server must be running for the app to work. yoursqlfriend starts it automatically — do not close the terminal.

Install with pipx (manual)
pipx install yoursqlfriend
From source (developers)
git clone https://github.com/reisset/yourSQLfriend.git
cd yourSQLfriend
./run.sh          # Linux/macOS
run.bat           # Windows

🛡️ Forensic Integrity

Read-only guaranteed SQL validation + SQLite mode=ro block all writes
Chain of custody SHA256 hashes logged, timestamped exports
Audit logs All queries logged to logs/ with daily rotation
Air-gap safe Zero telemetry, works fully offline

WAL files: The upload process excludes .db-wal and .db-shm files. Checkpoint your database first to ensure recent transactions are included.


⚠️ Known Limitations

  • Model quality matters. Smaller models will produce incorrect or incomplete SQL on complex schemas. If results look wrong, the query is the first thing to check.
  • SQLite only. No support for Postgres, MySQL, or other engines.
  • Single database per session. You can replace the loaded database mid-session, but results from different databases are not cross-queryable.
  • Complex queries may fail. Heavily nested subqueries, window functions, and non-standard SQLite extensions may exceed what the LLM generates reliably.

📂 Data Storage

All data lives in your home directory:

Platform Path
Linux / macOS ~/.yourSQLfriend/
Windows %APPDATA%\.yourSQLfriend\

Contains uploads/, logs/, and sessions/.


Apache 2.0 — see LICENSE and NOTICE

Built by Reisset

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

yoursqlfriend-3.11.1.tar.gz (743.0 kB view details)

Uploaded Source

Built Distribution

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

yoursqlfriend-3.11.1-py3-none-any.whl (754.4 kB view details)

Uploaded Python 3

File details

Details for the file yoursqlfriend-3.11.1.tar.gz.

File metadata

  • Download URL: yoursqlfriend-3.11.1.tar.gz
  • Upload date:
  • Size: 743.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yoursqlfriend-3.11.1.tar.gz
Algorithm Hash digest
SHA256 8cc4eacbc4b00b76c2b703adf9a7b92311f9831a020d58f60d4cc71eacaa8c66
MD5 cdc790305de0bbee7d75b899e6ed085a
BLAKE2b-256 56d1538347dd4f93ad36fbf2ab2fd0caeb43bbcae50e46aca8ffc40cd7cb6911

See more details on using hashes here.

Provenance

The following attestation bundles were made for yoursqlfriend-3.11.1.tar.gz:

Publisher: publish.yml on reisset/yourSQLfriend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yoursqlfriend-3.11.1-py3-none-any.whl.

File metadata

  • Download URL: yoursqlfriend-3.11.1-py3-none-any.whl
  • Upload date:
  • Size: 754.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yoursqlfriend-3.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 efcfe1007f99772ed514d2fd8e0124e0872b409c5ec3c63baf0fdcdd4c891956
MD5 82b2e1976d4000d84a9905b14fc12ae2
BLAKE2b-256 1a22acd8c46a31579fc4a73614881224c12b386427f9ca40bbaf5219c030668b

See more details on using hashes here.

Provenance

The following attestation bundles were made for yoursqlfriend-3.11.1-py3-none-any.whl:

Publisher: publish.yml on reisset/yourSQLfriend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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