VisiData Documentation
VisiData is an interactive multitool for tabular data in the terminal. It combines the clarity of a spreadsheet, the efficiency of the terminal, and the power of Python — capable of handling millions of rows with ease.
Who This Track Is For
- Data analysts and engineers exploring CSV, JSON, SQLite, and log files in the terminal
- Sysadmins parsing structured output from commands and log files interactively
- Accountants and spreadsheet users migrating from Excel to terminal-based workflows
- Developers who need a fast, keyboard-driven alternative to spreadsheets and pandas
What You Will Build
- A fast sheet-based exploration workflow for any tabular data format
- Column manipulation pipelines: type casting, derived columns, regex splits
- Frequency tables, pivot tables, and in-terminal scatterplots
- A
.visidatarcconfiguration that matches your workflow - Replayable audit trails via VisiData's CommandLog
- Excel-to-VisiData translation skills for accountants and analysts
How To Use This Track
- Follow the modules in order (1 to 12). Each lesson includes real commands and exercises.
- Practice with actual data files from
~/github/practice-folder/visidata/. - Build your own
.visidatarcincrementally as you complete each module.
Learning Path
| Module | Focus | Lessons |
|---|---|---|
| 1. Introduction | Fundamentals and mental model | 3 |
| 2. Configuration | .visidatarc, themes, plugins, and options | 4 |
| 3. Loading and Exporting | Open files, load formats, export, batch mode, performance | 3 |
| 4. Navigation and Sheets | Cursor, scroll, search, sheet stack, global commands, sheet entry points | 5 |
| 5. Row Operations | Selection, filtering, sorting, reordering, mutations | 4 |
| 6. Column Operations | Types, layout, creation, editing, nested JSON, aggregators, Columns Sheet | 8 |
| 7. Editing and Audit | CommandLog replay, macros, cell editing, incremental values | 3 |
| 8. Analysis and Grouping | Frequency tables, pivot, descriptive stats, describe sheet, joins | 4 |
| 9. Visualization | In-terminal graphs, multi-series canvas, categorical plots | 4 |
| 10. Python and Formulas | Excel-to-VisiData translator for analysts and accountants | 8 |
| 11. Real-World Workflows | Capstone project, sysadmin, ETL pipeline, API patterns | 6 |
| 12. Troubleshooting | Common errors, performance, format issues, config debugging | 4 |
| 13. Cheatsheet | Quick start card, keyboard map, and reference cheatsheets | 6 |
Core Architecture
How VisiData Works
File / Pipe / URL
│
▼ vd file.csv
VisiData Engine
│
▼
Sheet Stack
├── Source Sheet
│ ├── Columns → Types: str / int / float / date
│ └── Rows → Selection / Filter
├── Frequency Table (Shift+F)
└── Pivot Table (Shift+W)
Sheet-Based Mental Model
vd file.csv
│
└──▶ Sheet Stack
│
└──▶ Source Sheet (all rows and columns)
├──Shift+F──▶ Frequency Table (grouped by column)
├──Shift+W──▶ Pivot Table (key × aggregator)
├──Shift+I──▶ Describe Sheet (summary statistics)
├──Shift+C──▶ Columns Sheet (inspect/edit metadata)
└── g. ──▶ Graph (numeric column vs key)
warning
VisiData does not modify your source files unless you explicitly save with Ctrl+S. All transformations happen in memory.
Quick Start
first-visidata-session.sh
# 1) Install VisiData
pip install visidata # recommended
sudo apt install visidata # Debian/Ubuntu (may be older version)
# 2) Open a CSV file
vd ~/github/practice-folder/visidata/01-loading/01-employees.csv
# 3) Navigate with arrow keys or hjkl
# 4) Open a frequency table on the current column
# Press: Shift+F
# 5) Quit the current sheet
# Press: q
# 6) Quit VisiData entirely
# Press: gq (quit all at once)
note
Press Space to open the command palette — a searchable list of every VisiData command. Press z^H for help specific to the current sheet type.
VisiData vs Alternatives
| Tool | Use Case | Key Advantage |
|---|---|---|
visidata | Interactive tabular data exploration | Multi-format, Python expressions, sheets |
csvkit | CSV transformation pipelines | CLI-composable, scriptable |
miller | Stream processing of structured data | Fast, AWK-like syntax |
pandas | Programmatic data analysis | Full Python ecosystem |
xsv | Fast CSV indexing and slicing | Blazing speed, Rust-based |
Prerequisites
- Linux shell basics (
ls,cat,pipe, redirection) - Familiarity with CSV or tabular data concepts
- Python 3.8+ (VisiData is a Python package)
Success Criteria
By the end of this track, you can:
- Open any supported data format and navigate it fluidly
- Select, filter, and sort rows using keyboard-driven workflows
- Create derived columns with Python expressions
- Build frequency tables and pivot tables without leaving the terminal
- Customize VisiData with a
.visidatarcthat matches your workflow - Replay and document data transformations via CommandLog
- Translate Excel formulas to VisiData Python equivalents
Next Step
Start with What is VisiData.