csvkit
A suite of command-line tools for working with CSV, the king of tabular file formats.
Decision gist · record as of 2026-08-14
Yes. csvkit is a mature, actively maintained tool with no security issues, permissive licensing, and low install friction. It's well-suited for developers and analysts who prefer command-line workflows for CSV manipulation. Install it if you work with CSV files regularly and want lightweight, specialized tools instead of heavier data libraries.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a pure-Python wheel distribution.
- The package is actively maintained with a recent release and 6409 GitHub stars, indicating stable, well-used tooling.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
last release 2025-12-15 (242 days) · last repo commit 2026-08-03 · 6,409 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 345,125 downloads/mo, #7,367 on PyPI
Alternatives
Verify before relying
pip install csvkit
After installation, csvkit provides command-line tools for working with CSV files. The package includes utilities for filtering, selecting columns, joining files, and converting between formats.- Specific command names and their exact functionality beyond the general CSV manipulation scope.
- Performance characteristics when working with large CSV files or complex transformations.
- Whether Python API usage is documented alongside command-line interfaces.
What it is and what it does
csvkit is a suite of command-line utilities designed for working with CSV files and related tabular formats. It provides specialized commands for common CSV operations—filtering rows, selecting columns, joining files, and converting between formats like Excel, DBF, and SQL databases. The package bundles eight runtime dependencies including agate, agate-excel, agate-dbf, agate-sql for format support, and sqlalchemy for database connectivity.
The tool is aimed at developers, data analysts, and researchers who work with tabular data from the command line. It's been in active development since its early releases, supports modern Python versions, and runs on both CPython and PyPy. With low install friction and no known security vulnerabilities, it's a stable choice for CSV manipulation workflows that don't require a full data science stack.
Use it for
- Extract specific columns from CSV files without loading into memory-heavy tools.
- Filter rows based on patterns or conditions to subset data for analysis.
- Join multiple CSV files on common columns for data consolidation.
- Convert Excel or database exports to CSV format for pipeline integration.
- Inspect and validate CSV structure and data types from the command line.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
csvkit is a mature, actively maintained tool with no security issues, permissive licensing, and low install friction. It's well-suited for developers and analysts who prefer command-line workflows for CSV manipulation. Install it if you work with CSV files regularly and want lightweight, specialized tools instead of heavier data libraries.
Install
csvkit on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with a recent release and 6409 GitHub stars, indicating stable, well-used tooling.
License in practice
MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install csvkit
After installation, csvkit provides command-line tools for working with CSV files. The package includes utilities for filtering, selecting columns, joining files, and converting between formats.
Verify before relying
- Specific command names and their exact functionality beyond the general CSV manipulation scope.
- Performance characteristics when working with large CSV files or complex transformations.
- Whether Python API usage is documented alongside command-line interfaces.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesagateagate-excelagate-dbfagate-sqlopenpyxlsqlalchemyxlrdimportlib_metadata |
| Maintenance | Actively maintained 242 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 345,125 / month, #7,367 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/Engineering :: Information AnalysisTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities |
Evidence: csvkit-2.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “csv command line tools”
- csvkitcsvkit provides command-line tools for converting, querying, and…
- tinybirdCommand-line interface for managing Tinybird data projects, including…
- cliffcliff is a framework for building command-line programs that use…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also tablib · csvw · defusedcsv · linear-tsv · pytablewriter · sqlite-utils · aspose-cells · tabulator · dataflows-tabulator · kedro-datasets