Skip to main content

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 .visidatarc configuration 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 .visidatarc incrementally as you complete each module.

Learning Path

ModuleFocusLessons
1. IntroductionFundamentals and mental model3
2. Configuration.visidatarc, themes, plugins, and options4
3. Loading and ExportingOpen files, load formats, export, batch mode, performance3
4. Navigation and SheetsCursor, scroll, search, sheet stack, global commands, sheet entry points5
5. Row OperationsSelection, filtering, sorting, reordering, mutations4
6. Column OperationsTypes, layout, creation, editing, nested JSON, aggregators, Columns Sheet8
7. Editing and AuditCommandLog replay, macros, cell editing, incremental values3
8. Analysis and GroupingFrequency tables, pivot, descriptive stats, describe sheet, joins4
9. VisualizationIn-terminal graphs, multi-series canvas, categorical plots4
10. Python and FormulasExcel-to-VisiData translator for analysts and accountants8
11. Real-World WorkflowsCapstone project, sysadmin, ETL pipeline, API patterns6
12. TroubleshootingCommon errors, performance, format issues, config debugging4
13. CheatsheetQuick start card, keyboard map, and reference cheatsheets6

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

ToolUse CaseKey Advantage
visidataInteractive tabular data explorationMulti-format, Python expressions, sheets
csvkitCSV transformation pipelinesCLI-composable, scriptable
millerStream processing of structured dataFast, AWK-like syntax
pandasProgrammatic data analysisFull Python ecosystem
xsvFast CSV indexing and slicingBlazing 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 .visidatarc that matches your workflow
  • Replay and document data transformations via CommandLog
  • Translate Excel formulas to VisiData Python equivalents

Next Step

Start with What is VisiData.