A data visualization pipeline tool for fast schema inspection, charting, dashboards, and export.
Vizflow turns raw CSV, JSON, Parquet, SQLite, SQL script, and piped stdin data into useful visual outputs without writing boilerplate notebooks. It profiles column types, recommends chart families, generates Plotly-powered interactive charts, serves local browser previews, combines charts into dashboards, converts datasets between common formats, and produces comparison reports for changing data files.
- Automatic schema inspection — detect semantic column types, null counts, unique values, samples, and numeric/date statistics.
- Smart chart suggestions — recommend line, bar, scatter, pie, heatmap, treemap, and histogram views from the data shape.
- Interactive Plotly charts — generate browser-ready HTML or static PNG/SVG/PDF exports.
- Dashboard mode — combine multiple chart specs into a responsive standalone HTML page.
- Local preview server — launch a Flask web server for chart, schema, and sample-data browsing on localhost.
- Data conversion and comparison — convert CSV/JSON/Parquet inputs and compare two datasets visually.
- Pipe support — stream CSV or JSON directly into commands with
cat data.csv | vizflow plot.
pip install vizflow-cliFor local development:
git clone https://github.com/shazeus/vizflow-cli.git
cd vizflow-cli
pip install -e .Inspect a dataset:
vizflow schema examples/sales.csvCreate an auto-selected chart:
vizflow plot examples/sales.csv --output sales-chart.htmlCreate a specific chart:
vizflow plot examples/sales.csv --type line --x date --y revenue --color regionBuild a dashboard:
vizflow dashboard examples/sales.csv --charts "bar:region:revenue,line:date:revenue,pie:category:revenue"Convert a file:
vizflow convert examples/sales.csv --to json --output sales.jsonPreview in a browser:
vizflow serve examples/sales.csv --port 5050Use stdin:
cat examples/sales.csv | vizflow plot --type bar --x region --y revenue --output piped.html| Command | Description | Example |
|---|---|---|
vizflow plot <file> |
Generate a single interactive chart. Omit <file> to read stdin. |
vizflow plot data.csv --type scatter --x price --y volume |
vizflow dashboard <file> |
Combine multiple charts into one standalone HTML page. | vizflow dashboard data.csv --charts "bar:team,line:date:sales" |
vizflow schema <file> |
Inspect data types, nulls, unique values, stats, and chart suggestions. | vizflow schema data.json |
vizflow convert <file> |
Convert datasets between CSV, JSON, and Parquet. | vizflow convert data.csv --to parquet |
vizflow serve <file> |
Start a Flask preview server with chart and schema endpoints. | vizflow serve data.sqlite --table events |
vizflow export <file> |
Export a chart as PNG, SVG, HTML, or PDF. | vizflow export data.csv --format svg --type bar |
vizflow compare <file1> <file2> |
Compare two datasets and write an HTML report. | vizflow compare before.csv after.csv |
Vizflow is intentionally CLI-first and does not require a config file. Common options are available directly on commands:
| Option | Purpose |
|---|---|
--type |
Choose auto, bar, line, scatter, pie, heatmap, treemap, or histogram. |
--x, --y, --color |
Override inferred chart columns. |
--query |
Run a SQL query against SQLite database or SQL script inputs. |
--table |
Select a table from SQLite database or SQL script inputs. |
--output |
Set the generated file path. |
--format |
Choose export format for chart output. |
Static image export uses Plotly's Kaleido engine when available. If the local browser runtime is unavailable, Vizflow falls back to a Matplotlib renderer for PNG, SVG, and PDF outputs.
MIT License. See LICENSE.