csvkit is composed of command-line tools that can be divided into three major categories: Input, Processing, and Output. Documentation and examples for each tool are described on the following pages.


To change field values (i.e. to run sed or awk-like commands on CSV files), consider miller (mlr put).

To transpose CSVs, consider csvtool. Install csvtool on Linux using your package manager, or on macOS using:

brew install ocaml
opam install csv
ln -s ~/.opam/system/bin/csvtool /usr/local/bin/
csvtool --help

Output and Analysis

  • To draw plots, consider jp.
  • To diff CSVs, consider daff.
  • To explore CSVs interactively, consider VisiData.

Alternatives to csvsql are q and textql.