# VisiData — Terminal Spreadsheet Multitool for Data Exploration > An interactive terminal application for exploring, transforming, and analysing tabular data from CSV, JSON, SQLite, Postgres, and dozens of other formats. ## Install Save as a script file and run: # VisiData — Terminal Spreadsheet Multitool for Data Exploration ## Quick Use ```bash pip install visidata # Open a CSV file vd data.csv # Open a SQLite database vd database.sqlite # Pipe data from another command curl -s https://api.example.com/data.json | vd -f json ``` ## Introduction VisiData is a terminal-based tool for rapid exploration and manipulation of tabular data. It opens virtually any structured data format instantly and provides a keyboard-driven interface for sorting, filtering, aggregating, and joining datasets without writing code. ## What VisiData Does - Opens CSV, TSV, JSON, SQLite, Postgres, Excel, Parquet, HDF5, and 30+ other formats - Provides instant frequency analysis, histogram, and pivot table generation - Supports regex search, column transformations, and Python expressions inline - Saves modified data back to any supported format - Handles datasets with millions of rows via lazy loading and streaming ## Architecture Overview VisiData is a pure-Python application built on the curses library. Each data source is loaded through a format-specific loader plugin that yields rows lazily. The sheet abstraction manages columns, types, and sort state. A command system maps single keystrokes to operations, and users can extend functionality with Python snippets in a `.visidatarc` file. ## Self-Hosting & Configuration - Install via pip, pipx, conda, or your distro's package manager - No external dependencies for CSV/JSON; install optional packages for databases (psycopg2) or Parquet (pyarrow) - Customise keybindings and default options in `~/.visidatarc` - Set `options.color_default` and theme options for terminal colour schemes - Use `--play` to replay saved command logs for reproducible analyses ## Key Features - Opens any data format with a single command and no schema definition - Keyboard-driven workflow is faster than GUI tools for exploratory analysis - Frequency sheets and pivot tables are one keystroke away - Command logging enables fully reproducible data exploration sessions - Extensible via Python plugins and inline expressions ## Comparison with Similar Tools - **pandas** — requires writing Python code; VisiData is interactive and visual - **csvkit** — focused on CSV command-line operations; VisiData adds an interactive TUI - **Miller** — streaming record processor; VisiData adds spreadsheet-style navigation - **q** — SQL on CSV files; VisiData supports SQL and many more formats interactively - **Tad** — GUI CSV viewer; VisiData runs in any terminal without a display server ## FAQ **Q: Can it handle very large files?** A: Yes. VisiData streams rows lazily and can handle multi-gigabyte files if sufficient memory is available for the visible window. **Q: Is it scriptable?** A: Yes. Command logs can be saved and replayed, and `.visidatarc` supports arbitrary Python. **Q: Does it modify the source file?** A: No. Changes exist in memory until you explicitly save to a file. **Q: What Python version is required?** A: Python 3.8 or later. ## Sources - https://github.com/saulpw/visidata - https://www.visidata.org --- Source: https://tokrepo.com/en/workflows/asset-9b3d16bb Author: Script Depot