EVERYTHING XIAOMI
Get listed

csvkit

csvkit is a free suite of command-line tools for converting, processing, and analyzing CSV data on Linux, macOS, and Windows.

Place
#21 of 37
Score
6.2
csvkit's website

What csvkit is

csvkit is a free suite of command-line tools for converting, processing, and analyzing CSV data on Linux, macOS, and Windows. Its commands cover importing, cleaning, selecting, filtering, joining, sorting, and stacking files, along with formatting and analysis. The in2csv tool converts Excel XLS/XLSX, JSON, and fixed-width files to CSV. For database work, csvsql can query CSV data with SQL and import it into PostgreSQL, while sql2csv pulls query results from PostgreSQL. The toolkit detects delimiters based on the first 1024 bytes of input by default and infers types such as numbers, dates, and booleans, though that inference can be wrong. Installation options include pip and Homebrew; the documentation recommends virtual environments. Current project metadata requires Python 3.10 or newer. Some commands buffer entire files in memory, which can be a concern with large inputs. csvkit is self-hosted, code-driven, and released under the MIT License; its documentation notes that it is provided without warranty.

Good

  • Free under the MIT License.
  • Converts Excel, JSON, and fixed-width files to CSV.
  • Includes tools for cleaning, joining, sorting, and analysis.
  • Supports Linux, macOS, and Windows.
  • Can query CSV data with SQL.

Watch out

  • Requires Python 3.10 or newer.
  • Some tools buffer whole files in memory.
  • Automatic type inference can be erroneous.

Who it suits

csvkit suits developers, desktop users, and science or research users who work with tabular data from the command line. It is also useful for people combining CSV processing with SQL and PostgreSQL workflows.

Verdict

csvkit brings a broad set of CSV operations into command-line workflows, including conversion and database tasks. Check its Python requirement and memory behavior against the files you need to handle.

Plans and prices

From csvkit's own pricing page, checked 1 Oct 2026.

All about pricing
PlanPriceWhat it gives you
Open-source csvkitFreeCommand-line toolkit · no paid tiers stated · Free of charge under the MIT License

The facts

Each one read from csvkit's own pages, with the date it was checked.

What it does

Database integrations
Database connections use SQLAlchemy dialects; the troubleshooting guide specifically lists PostgreSQL and MySQL backends.checked 1 Oct 2026
File conversion
in2csv converts Excel XLS/XLSX, JSON, and fixed-width files to CSV.checked 1 Oct 2026
Format detection
csvkit sniffs delimiters using the first 1024 bytes of input by default.checked 1 Oct 2026
Input tools
Its input tools include in2csv and sql2csv.checked 1 Oct 2026
Installation
The project documents installation with pip, recommends virtual environments, supports Homebrew installation, and offers an optional Zstandard extra.checked 1 Oct 2026
Maintenance scope
The maintainers say csvkit generally no longer adds new tools because of limited maintenance time and a desire to keep the toolkit focused.checked 1 Oct 2026
Output and analysis
Its output and analysis tools include csvformat, csvjson, csvlook, csvpy, csvsql, and csvstat.checked 1 Oct 2026
Performance limits
Some tools stream rows, while others buffer entire files in memory; the documentation says large files may reach csvkit's limits.checked 1 Oct 2026
Processing tools
Its processing tools include csvclean, csvcut, csvgrep, csvjoin, csvsort, and csvstack.checked 1 Oct 2026
Runtime requirement
The current project metadata requires Python 3.10 or newer.checked 1 Oct 2026
Security and licensing
csvkit is released under the MIT License and the license states the software is provided as-is without warranty.checked 1 Oct 2026
SQL workflows
csvsql can query CSV data with SQL and import it into PostgreSQL, while sql2csv extracts query results from PostgreSQL.checked 1 Oct 2026
Support
User support is provided through the documentation, GitHub issues, and community contributions.checked 1 Oct 2026
Supported systems
The documentation states csvkit is supported on non-end-of-life Python versions on Linux, macOS, and Windows.checked 1 Oct 2026
Target users
Project metadata identifies developers, end users/Desktop, and science/research users as intended audiences.checked 1 Oct 2026
Type inference
csvkit automatically infers numbers, dates, booleans, and other data types, and the documentation warns that inference can occasionally be erroneous.checked 1 Oct 2026
What it does
csvkit is a suite of command-line tools for converting to and working with CSV files.checked 1 Oct 2026
The full review of csvkit

csvkit is a free, open-source command-line toolkit for converting, cleaning, querying, and inspecting tabular data. It best serves developers, desktop users, and research teams who are comfortable turning repeatable data work into shell commands and scripts. Its broad format and database coverage is compelling for code-first workflows, while Python and memory requirements deserve attention before adopting it for very large files.

Overview

csvkit is self-hosted software built around small commands that can be combined into data pipelines. Alongside CSV, it supports DBF, fixed-width text, GeoJSON, JSON, NDJSON, XLS, and XLSX, plus gzip-, bz2-, and xz-compressed CSV input. That makes it useful when incoming files vary by source and format, but the work still needs to end in a predictable, scriptable process rather than a graphical interface.

The toolkit includes workflow orchestration and data quality checks, and its MIT License permits free use. The license also provides the software as-is without warranty. Maintainers generally avoid adding new tools because maintenance time is limited and the project is intentionally focused, so users wanting a fast-growing command catalog should look elsewhere.

Key features

Conversion and transformation

in2csv turns Excel XLS/XLSX, JSON, and fixed-width files into CSV, giving mixed-format intake a consistent starting point. Processing commands include csvclean for cleanup, csvcut for selecting columns, csvgrep for filtering, csvjoin for joins, csvsort for ordering, and csvstack for combining files. These discrete operations are well suited to repeatable pipelines and version-controlled scripts; they are less suitable for someone who expects point-and-click transformation.

Inspection and output

csvformat, csvjson, csvlook, csvpy, csvsql, and csvstat cover reformatting, JSON export, readable terminal inspection, Python-oriented handling, SQL work, and statistical summaries. Delimiter detection samples the first 1,024 bytes by default, which can simplify imports but means unusual files should be checked when their opening bytes do not represent the whole structure.

SQL and databases

csvsql can query CSV data with SQL and import it into PostgreSQL, while sql2csv extracts query results from PostgreSQL. Database connections use SQLAlchemy dialects, with PostgreSQL and MySQL specifically covered in troubleshooting guidance. This is a strong bridge between flat files and relational workflows, provided the user is prepared to configure database connections and work from the command line.

Inference, installation, and limits

csvkit infers numbers, dates, booleans, and other types automatically, reducing manual schema work. The documentation warns that inference can occasionally be wrong, so downstream analysis should validate inferred types. Installation is documented through pip, with virtual environments recommended; Homebrew is also supported, and an optional Zstandard extra is available. Current project metadata requires Python 3.10 or newer and supports non-end-of-life Python versions on Linux, macOS, and Windows.

Some commands stream rows, but others buffer complete files in memory. Large datasets can therefore reach csvkit's limits, making command choice and available RAM important considerations rather than implementation details.

Pricing

Open-source csvkit — free, billed free of charge under the MIT License. It is a command-line toolkit with no paid tiers stated, so there are no seat charges, quotas, renewal terms, or trial-period distinctions. The trade-off is that the package is self-hosted: users provide their own Python environment, machines, storage, and database infrastructure.

Platforms

csvkit supports Linux, macOS, and Windows, with the supported-system policy tied to non-end-of-life Python versions. Its deployment model is self-hosted, and its transformation interface is code-based, so platform support does not remove the need for terminal and Python administration.

Who it's for

Choose csvkit if you need scripted conversion between spreadsheets, JSON, fixed-width text, and CSV; repeatable cleanup and quality checks; or a lightweight path between CSV files and PostgreSQL or MySQL-backed workflows. It is particularly fitting for developers and research users who value composable commands and for desktop users willing to work outside a graphical tool. It is a weaker choice for teams that need visual editing, guaranteed handling of very large files, or a rapidly expanding feature set.

Pros and cons

  • Pro: Broad format conversion, including XLS/XLSX, JSON, NDJSON, DBF, GeoJSON, and fixed-width input, reduces manual preparation when sources differ.
  • Pro: Separate cleaning, selection, filtering, joining, sorting, stacking, inspection, and statistics commands make recurring pipelines easy to express as code.
  • Pro: SQL querying and PostgreSQL import/export connect flat-file work to relational databases without requiring a separate conversion utility.
  • Pro: Free MIT-licensed use avoids subscription or seat costs.
  • Con: Python 3.10 or newer and a maintained Python installation add setup requirements, especially on managed systems.
  • Con: Commands that buffer full files can hit memory limits on large datasets, so it is not a universal solution for high-volume processing.
  • Con: Automatic type inference can be erroneous and needs validation before critical analysis.
  • Con: Limited maintenance ambition means users should not expect a rapidly growing toolset.

Alternatives

jq is the better pick for focused JSON processing with standalone binaries across Linux, macOS, and Windows. Choose Bonobo when you want an open-source Apache-licensed option for Linux, macOS, Windows, or self-hosted deployment. Polars suits users seeking a free-to-use open-source data manipulation library with API and web availability. Apache Beam is preferable when you need a programming model that can run on different runners, with execution costs determined by infrastructure. Bruin for Customer Success offers a cloud free tier with $100 in credits and 50 AI tasks without a credit card. Choose data.table or dplyr when your workflow is centered on R packages. Ibis is an alternative Python dataframe library when its backend coverage matches your operations.

Verdict

csvkit is a strong choice for developers and researchers who want a free, composable command-line route from mixed tabular files to cleaned data, SQL queries, and database imports. Its main reason to choose it is the breadth of practical CSV-centered operations in one focused toolkit; its main reason to look elsewhere is the combination of Python 3.10-plus setup, occasional type-inference errors, memory-heavy commands, and deliberately limited maintenance.

Alternatives to csvkit

All alternatives
  1. 1Bruin for Customer Success logo

    Bruin for Customer Success

    Free planOpen sourceWebAPIExtensionLinux
    8.2$0.01 usage-based
  2. 2Cube logo

    Cube

    Free planOpen sourceWebAPILinuxSelf-hosted
    7.9From $40 a month
  3. 3Apache Beam logo

    Apache Beam

    Free planOpen sourceWebAPILinuxmacOS
    7.7Free plan
  4. 4Apache Hop logo

    Apache Hop

    Free planOpen sourceWebAPILinuxmacOS
    7.7Free plan
  5. 5Coalesce Catalog logo

    Coalesce Catalog

    Free planWebAPIExtension
    7.5From $150 a month
  6. 6dbt Semantic Layer logo

    dbt Semantic Layer

    Free planWebAPIExtension
    7.5From $100 a month