Skip to content
Latchkey

VisiData (vd): Explore CSV, JSON and Parquet

VisiData (the vd command) is an interactive terminal explorer for tabular and structured data across many formats, with a batch mode that runs a saved command sequence non-interactively.

For eyeballing a large CSV or a JSON export, vd loads it into a spreadsheet-like view where you sort, filter, and pivot with keystrokes. Its batch mode (-b) replays a recorded command file so the same steps can run in CI.

What it does

vd opens a data file (CSV, TSV, JSON, JSONL, Parquet, SQLite, XLSX, and more) in an interactive TUI where you navigate, filter, aggregate, and reshape. It records your keystrokes to a command log you can replay later with -p, and -b runs headless to convert or summarize.

Common usage

Terminal
vd report.csv
vd data.json
# batch mode: convert CSV to JSONL without the TUI
vd -b report.csv -o report.jsonl
# replay a saved command sequence
vd -b -p analyze.vdj input.csv -o out.csv

Options

FlagWhat it does
-b, --batchRun non-interactively (no TUI)
-o <file>Save/convert output to a file
-p <cmdlog>Replay a recorded command log (.vd/.vdj)
-f <format>Force the input filetype
--delimiter <char>Set the CSV delimiter

In CI

Interactive vd needs a terminal, but -b makes it scriptable: vd -b in.csv -o out.jsonl converts formats, and -p log.vdj replays a reshape you designed interactively. Explore the data locally, save the command log, then run that exact log in CI so the transformation is reproducible.

Common errors in CI

Running interactive vd headless fails with a curses/terminal error like "setupterm: could not find terminfo database"; always add -b in CI. "Error: no such file" or a loader error means the format was not detected; pass -f. If -f names the wrong type, vd reports a parse error such as an "csv" decode failure. A replayed .vdj that references a column not present in the new input errors mid-replay.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →