Skip to main content

datasight

Status: early and evolving. This project is in active development and the code is changing rapidly — APIs, CLI flags, and behavior may shift between commits. Feedback and bug reports from users are very welcome; please open an issue on GitHub.

AI-powered data exploration with natural language.

datasight connects an AI agent to your database and provides a web UI where you can ask questions in natural language. The agent writes SQL, runs queries, and generates interactive Plotly visualizations.

Supports DuckDB, PostgreSQL, SQLite, and Flight SQL databases. Also queries local CSV, Parquet, and Excel (.xlsx) files directly — no database setup required. Supports Anthropic Claude (default), GitHub Models (open source), and Ollama (local) as LLM backends.

Quick start

uv tool install datasight

# Create a new project
mkdir my-project && cd my-project
datasight init

# Edit .env with your API key and database path
# Edit schema_description.md to describe your data
# Edit queries.yaml with example questions

# Run the web UI
datasight run

Open http://localhost:8084 and start asking questions. By default, the web UI binds to 127.0.0.1; use --host to expose TCP intentionally, or --unix-socket /path/to/datasight.sock for SSH-forwarded socket workflows on HPC systems.

Explore CSV, Parquet, or Excel files with no setup

# Launch the web UI with no project, then paste a file or directory path
# into "Explore Files" to create views automatically
datasight run

# Or inspect a file from the command line (schema, row count, column stats)
datasight inspect generation.parquet

# Or build a persistent project from CSV/Parquet inputs
datasight generate generation.csv plants.csv --db-path grid.duckdb

Or ask from the command line without starting a server:

datasight ask "What are the top 10 records?"
datasight ask "Show trends by year" --chart-format html -o chart.html
datasight profile
datasight quality --format markdown -o quality.md
datasight ask --file questions.txt --output-dir batch-output

Features

  • Natural language queries — ask questions in English, get SQL + results
  • Interactive charts — Plotly visualizations with chart-type switching
  • Multiple databases — DuckDB, PostgreSQL, SQLite, and Flight SQL
  • Query files directly — point at a local CSV, Parquet, or Excel file (or directory) and start asking questions; datasight creates DuckDB views (or one table per Excel sheet) on the fly
  • Headless CLI — datasight ask runs queries without a web server
  • Deterministic CLI workflows — profile, quality, dimension, trend, and recipe commands that do not require an LLM
  • Schema browser — sidebar with tables, columns, and example queries
  • Schema auto-discovery — tables, columns, and types detected automatically
  • Domain context — describe your data in Markdown for better AI understanding
  • Example queries — seed the AI with question/SQL pairs
  • Reusable prompt recipes — project-specific analysis prompts derived from the schema
  • Multi-chart dashboard — pin results, filter cards, and configure layouts
  • Session export — share a session as a self-contained HTML page, or export it as a runnable Python script (editable SQL constants, embedded Plotly specs, hardcoded DB path with --db / --output-dir overrides) that re-runs the analysis without datasight or the AI in the loop
  • Keyboard shortcuts — ? to see all shortcuts, / to focus input
  • Streaming responses — real-time SSE streaming from the LLM

Architecture

datasight pairs a FastAPI backend with a Svelte 5 + TypeScript + Tailwind CSS frontend built with Vite. It supports multiple LLM backends — Anthropic (default), OpenAI, GitHub Models, and Ollama — selectable via LLM_PROVIDER in .env.

datasight run / datasight ask / datasight profile / datasight quality
  → LLM provider (Anthropic / OpenAI / GitHub Models / Ollama)
    → DuckDB / PostgreSQL / SQLite / Flight SQL (or CSV/Parquet via DuckDB views)
    → Plotly chart generator
  → Web UI (SSE streaming) or CLI output

Documentation

uv sync --extra dev
. .venv/bin/activate
zensical serve
zensical build
python scripts/generate_cli_reference.py

Development Tests

# Build frontend assets for FastAPI serving after a clean checkout
bash scripts/build-frontend.sh

# Python test suite
pytest

# CI-safe Python test suite, excluding tests that need local Ollama
pytest -m "not integration"

# Frontend unit tests (Vitest)
cd frontend && npm test

# Frontend E2E tests (Playwright, requires datasight run)
cd frontend && npm run test:e2e

# Rebuild frontend for FastAPI serving after frontend changes
bash scripts/build-frontend.sh

Generated web assets under src/datasight/web/static/ and src/datasight/web/templates/index.html are not checked in. Run bash scripts/build-frontend.sh before using datasight run from a clean checkout when you want FastAPI to serve the production UI.

Ollama-backed CLI tests are marked integration because they require a running local Ollama server with the qwen2.5:7b model available. CI runs pytest -m "not integration"; run pytest -m integration locally when you want to exercise the live LLM path.

Software Record

datasight is developed under NLR Software Record SWR-26-045.

Metadata

Release files for datasight 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datasight 0.9.0
File Size Uploaded Provenance Actions
datasight-0.9.0.tar.gz 3.4 MB With provenance Details for datasight-0.9.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for datasight 0.9.0
File Interpreter ABI Platform Actions
datasight-0.9.0-py3-none-any.whl Python 3 none any Details for datasight-0.9.0-py3-none-any.whl

Total release size: 5.4 MB

Release files / datasight-0.9.0.tar.gz

Download URL datasight-0.9.0.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
dfd2c4ac93cdff59d8d2754e98b47de8991ec4d7558447c9cf72dd3fee9939b8
BLAKE2b-256 checksum
How to use checksums
fed577aa4f4bcbc8c0b5dcecd617938ea3930b17d167ba16dceca0eb6ddd3d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 11, 2026.

Transparency log

Release files / datasight-0.9.0-py3-none-any.whl

Download URL datasight-0.9.0-py3-none-any.whl
Size 2.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6903e47c3ef958a16b18cf6db581c0e42b800fec0411ff500bfc366cae5b1303
BLAKE2b-256 checksum
How to use checksums
f8561252861c1b3ee34e072a34330246d9b046c16b5775070913fee5644deaa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 11, 2026.

Transparency log

Security for datasight 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for datasight-0.9.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page