Generate beautiful HTML dashboards from CSV/Excel files
Project description
csvglow
Generate beautiful, interactive HTML dashboards from CSV/Excel files. One command, zero config.
csvglow sales.csv
Opens a self-contained HTML dashboard in your browser with auto-detected charts, correlations, statistics, and a sortable data table. Dark gradient theme. Copy any chart to your clipboard for slide decks.
Install
pip install csvglow
Or via npx (no install needed):
npx csvglow data.csv
Usage
csvglow data.csv # CSV → dashboard, opens in browser
csvglow report.xlsx # Excel works too
csvglow data.csv -o dashboard.html # Custom output path
csvglow data.csv --no-open # Don't auto-open browser
What it generates
- Smart insights — multi-column narrative analysis (e.g. "Gadget Y has the highest discount yet lowest revenue — consider discontinuing")
- Summary stats — row count, column count, data types, missing values
- Histograms — for every numeric column, with mean/median/std/quartiles sidebar
- Bar charts — top values for categorical columns
- Cross analysis — automatic categorical × numeric crosstabs with overall mean lines
- Time series — line charts with area fill for date columns
- Correlation heatmap — auto-detected correlations between numeric columns
- Scatter plots — auto-generated for highly correlated pairs (|r| > 0.7)
- Outlier detection — IQR-based, highlighted per column
- Data table — sortable, filterable preview (first 1000 rows)
- Copy button — each chart has a one-click copy for pasting into slides
Output is a single self-contained HTML file. No server, no CDN, works offline.
MCP Server
csvglow works as an MCP tool in Claude Desktop, Cursor, Claude Code, Windsurf, or any MCP-compatible client.
Quick setup (pick one)
Option A — npx (easiest, no Python setup needed):
{
"mcpServers": {
"csvglow": {
"command": "npx",
"args": ["-y", "csvglow", "--mcp"]
}
}
}
Option B — pip install:
pip install csvglow
{
"mcpServers": {
"csvglow": {
"command": "csvglow",
"args": ["--mcp"]
}
}
}
Option C — Claude Code CLI:
claude mcp add csvglow -- csvglow --mcp
Where to put the config
| Client | Config file |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Cursor | .cursor/mcp.json in your project or ~/.cursor/mcp.json globally |
| Claude Code | ~/.claude/settings.json or run claude mcp add |
| Windsurf | ~/.windsurf/mcp.json |
What the MCP tool does
Exposes a single generate_dashboard tool that takes a file path and returns a full HTML dashboard. Your AI assistant can call it like:
"Generate a dashboard from /path/to/sales.csv"
Supported formats
.csv/.tsv(auto-detected delimiter).xls.xlsx(first sheet only — multi-sheet support coming soon)
Roadmap
- Multi-sheet Excel support — analyze all sheets in a workbook, with per-tab sections or auto-merge when columns match
- Multi-file support —
csvglow sales.csv marketing.csv --join dateto correlate data across multiple files with auto-detected or explicit join keys - Light theme
- Custom color palettes
- PDF export
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file csvglow-0.1.0.tar.gz.
File metadata
- Download URL: csvglow-0.1.0.tar.gz
- Upload date:
- Size: 360.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c1d7a5d9e998ed60c64309f543f9f44545e772849cd38b94e76839e896437c0
|
|
| MD5 |
b66e5e7f7901e6a61d61c2aa34b7997a
|
|
| BLAKE2b-256 |
ca582a728b6c506c954cdf1aef173cbec946a7319830e938a586cb61199e51d2
|
File details
Details for the file csvglow-0.1.0-py3-none-any.whl.
File metadata
- Download URL: csvglow-0.1.0-py3-none-any.whl
- Upload date:
- Size: 362.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d82d303406fe37cf52a53620bddbd34fc0e8d589f471dc45c70bc360fcaa037
|
|
| MD5 |
67a2e2cf03131578d46dfd0ff82cfe3c
|
|
| BLAKE2b-256 |
8c99cb2a3290195cf91285e89a0813ff1f216833c4f8256c34d56f6cb51f4500
|