csvkit.org
CSV (Comma-Separated Values) utilities, in the browser
Say hi →

Changelog

What's new on csvkit.org · most recent first

A short, honest log of what's been added, changed, or fixed. No marketing — just the actual edits. If something here looks broken or missing, please drop a note to [email protected].

2026-07-28 · 35 new tools, and a nav that can hold them

  • Excel, properly. CSV to Excel writes a real .xlsx (bold frozen header, auto column widths, numbers as numbers, leading zeros preserved as text), and Excel to CSV reads every sheet, converting date serials to ISO and exporting formula values. Both run in the browser — the workbook is unzipped locally.
  • SQL over a CSV. SQL on a CSV runs SELECT with WHERE, GROUP BY, HAVING, joins, and subqueries against a pasted file, with CSV and JSON export.
  • Analysis suite. Group & aggregate, Pivot table, Unpivot / melt, Value counts, Find duplicates, Data profile, Row & cell count, and Chart (bar / line / area / pie / scatter, SVG and PNG export, no chart library).
  • Real joins. Join on key — inner, left, right, full outer, with a match report and automatic suffixing of clashing column names.
  • File hygiene. Repair CSV (ragged rows, unclosed quotes, BOM, mixed newlines, with a change report), Encoding & BOM (UTF-8 / BOM / Windows-1252 / UTF-16, plus mojibake repair), Line endings, and Header row (add, remove, rename, promote row N, snake_case, de-duplicate).
  • Row and column surgery. Slice rows, Random sample and Shuffle (both seedable, so a sample is reproducible), Fill blanks (including fill-down for merged-cell exports), Trim whitespace (including invisible zero-width characters), Split column, Combine columns, Extract column, and Add column.
  • More converters. SQL to CSV, CSV to JSONL and back, CSV to GeoJSON and back, CSV to array (JS / Python / PHP / Ruby / JSON), CSV to LaTeX, CSV to ASCII table, and fixed width in both directions.
  • Sort now takes three keys. Sort sorts by up to three columns with independent directions, keeps blanks last by default, and is stable so equal rows hold their original order.
  • Mega-menu navigation. The tool list moved into a category menu in the header (and a drawer on mobile), since 68 tools no longer fit in a footer grid alone. Both the menu and the footer are generated from one list, so they can't drift apart.
  • Fixed: the line-ending converter used to lose real CR bytes because the output was read back out of a textarea, which normalises them to LF. Converted text is now kept outside the DOM, so copy and download carry the exact bytes.

2026-05-08 · Site redesign

  • Full-width layout. Removed the fixed-width container so tool panes can use the whole window.
  • Sidebar moved to footer. The left tool list is now a tile grid in the page footer, grouped by Convert / Inspect / Manipulate / Sample data.
  • Link colors. Links in body copy now read as links — bold links inherit the link color instead of falling back to ink.
  • Acronym annotations. Pages now spell out CSV (Comma-Separated Values) on first mention so first-time visitors aren't guessing.
  • Quote moved below tool. The author's intro/sig block now sits under the tool, not above the H1, so the tool is the first thing you see.

2026-03-12 · CSV to JSON / JSON to CSV

  • RFC 4180-correct quoting on both directions, with auto-detected delimiters and JSON Lines (NDJSON) output as a first-class option.
  • Strings stay strings — no silent coercion of 007 to 7.

2026-02-20 · CSV to SQL generator

  • Emits batched multi-row INSERT statements for PostgreSQL, MySQL, SQLite, and SQL Server.
  • Optional CREATE TABLE built from type inference over the whole file.

2026-02-04 · CSV diff

  • Cell-level diff between two versions of a CSV — highlights added, removed, and changed rows.

Earlier

Initial release: viewer, merge, dedupe, split. All 100% client-side.