Odel
NVEIL

NVEIL

Local
@nveil-ai3PythonAGPL-3.0Updated 3mo ago

Data processing and visualization toolkit — 50+ chart types, raw data stays local.

NVEIL

NVEIL Toolkit

Describe your data. Get production charts. Your data stays local.

PyPI Python Docs License

QuickstartAPI ReferenceExamplesChangelog


NVEIL is an AI-powered data visualization toolkit. Write one line of natural language, and NVEIL processes your data and generates publication-ready visualizations — no chart code, no hallucinations, no data leaving your machine.

import nveil

nveil.configure(api_key="nveil_...")

# Pass a file path directly — no DataFrame loading required.
spec = nveil.generate_spec("Revenue by region, colored by quarter", "sales.csv")

fig = spec.render("sales.csv")   # 100% local — no API call
nveil.show(fig)                   # opens in browser

From your shell

After pip install nveil the nveil command is on your $PATH:

export NVEIL_API_KEY=nveil_...

# Ground yourself on the dataset (shape / dtypes / head preview)
nveil describe sales.csv

# Generate HTML + PNG + a reusable .nveil spec, print the explanation
nveil generate "Revenue by region, colored by quarter" \
  --data sales.csv --format all --explain

# Re-render an existing spec on fresh data — no API call
nveil render chart.nveil --data new_sales.csv

For AI agents (Claude Code / Claude Desktop / Cursor / Codex / …)

NVEIL ships first-class integrations:

# Claude Code / Claude Desktop — install the bundled skill
nveil install-skill

# Claude Desktop, Cursor, any MCP client — add an MCP server:
# {"mcpServers": {"nveil": {"command": "nveil", "args": ["mcp"]}}}
nveil mcp                    # stdio server; launched by the MCP client

NVEIL multi-panel dashboard with charts, heatmaps, and flow diagrams

Why NVEIL?

CapabilityNVEILChatbot data analysis¹LLM-to-viz libraries²Traditional plotting³
Natural-language input
Raw data stays on your machine
Only schema + stats sent to serverN/A
Deterministic, reproducible output
Offline re-rendering, zero API calls
Portable saved specs (.nveil files)
2D + 3D + geospatial + scientific2D2Dvaries
Multi-backend (Plotly, VTK, DeckGL)
Data processing enginepartial

¹ ChatGPT Advanced Data Analysis, Claude Analysis tool, Gemini Data Agent  ·  ² PandasAI, LIDA, Julius, Vanna  ·  ³ Plotly, Matplotlib, Seaborn

How It Works

Your Data ──> Toolkit ──metadata only──> NVEIL AI ──> Processing Plan ──> Local Execution ──> Result
               ^                                                           ^
          raw data stays here                                     raw data stays here
  1. You describe what you want in plain language
  2. NVEIL AI plans the data processing and visualization (only metadata is sent — column names, types, statistics)
  3. The Toolkit executes locally — joins, aggregations, pivots, rendering — all on your machine
  4. You get a figure — Plotly, VTK, or DeckGL, auto-selected for your data

Key Features

🧠 Two Engines in One

Data processing (joins, pivots, aggregations, geocoding, time series) AND visualization generation from a single prompt.

🔒 Data Privacy by Design

Raw data never leaves your machine. Only column names, types, and aggregate statistics are sent.

📈 Multi-Backend Rendering

Auto-detects the best engine: Plotly (2D charts), VTK (3D/medical), DeckGL (geospatial).

🧪 Auditable Results

Powered by constraint solving, not random generation. Same input = same output, every time.

⚡ Offline Rendering

spec.render() runs 100% locally with zero API calls.

💾 Reusable Specs

Save to .nveil files, reload later, render on new data — no server needed.

Beyond Simple Charts

NVEIL AI chat — conversational data exploration with geospatial heatmaps

NVEIL handles geospatial heatmaps, 3D volumes, scientific visualizations, medical imaging (DICOM), biosignal data (EDF/EDF+), network graphs, and 50+ other visualization types — all from natural language.

Save Once, Render Forever

# Generate once (API call)
spec = nveil.generate_spec("Monthly trend by category", df)
spec.save("trend.nveil")

# Reload anywhere — no API call, no server, no cost
spec = nveil.load_spec("trend.nveil")
fig = spec.render(fresh_data)
nveil.save_image(fig, "report.png")

Installation

pip install nveil

Requirements: Python 3.10+

Getting Started

  1. Create an account at app.nveil.com
  2. Generate an API key in Settings
  3. Start visualizing
import os
import nveil

nveil.configure(api_key=os.environ["NVEIL_API_KEY"])

spec = nveil.generate_spec("scatter plot of price vs area", df)
fig = spec.render(df)
nveil.show(fig)

See the examples/ directory for more usage patterns.

Documentation

Full documentation is available at docs.nveil.com:

Contributing

Contributions are welcome under the project's Contributor License Agreement. Bug reports and feature requests are welcome via GitHub Issues.

License

GNU AGPL v3 or later. See LICENSE. Commercial dual-licensing is available — contact pierre.jacquet@nveil.com.


WebsiteDocumentationPlatform