github dathere/qsv 18.0.0

pre-release5 hours ago

[18.0.0] - 2026-03-20 The "StatsSighting" Cowork Plugin Release

"StatsSighting" is like "VibeCoding" but for iterative, blazing-fast, deep data analysis. "Stats" for Statistics. "Sight" for Insight - doing a comprehensive statistical profile of datasets first to inform the analysis pipeline.

The Claude Cowork Plugin comes with several agents - the "Data Analyst Agent" for deep data exploration and analysis, the "Data Wrangler Agent" for transformation and cleaning, and the "Policy Analyst Agent" for helping with policy evaluation and decision-making. Each agent has a specific role and skill set, with a shared emphasis on leveraging the qsv MCP Server's profiling and querying capabilities to understand the data before acting on it.

The qsv MCP server received major enhancements - including session logging, DuckDB-powered Parquet conversion, SQL translation hardening, and interactive working directory elicitation.

The core qsv suite also gets significant updates in this release, including the new scoresql command for pre-query SQL analysis, smarter pragmastat with stats-cache integration and comparison mode, pivotp optimizations with moarstats awareness, and formatted table output for to.


Major Features

New scoresql Command

Analyze SQL queries against CSV file caches (stats, moarstats, frequency) to produce a performance score with actionable optimization suggestions before running the query. Scoring factors include query plan analysis (EXPLAIN), type optimization, join key cardinality, filter selectivity, anti-pattern detection (SELECT *, missing LIMIT, cartesian joins), and infrastructure checks (index files, cache freshness). Supports Polars and DuckDB modes, SQL file input, and JSON output. Integrates with describegpt for AI-assisted query review. #3612, #3616, #3624

Smarter pragmastat — Stats-Cache Aware with Comparison Mode

pragmastat now reads the stats cache to automatically skip non-numeric/non-date columns, and writes its own results back to the cache for downstream commands. New --compare1 and --compare2 options let you compare two distributions side-by-side. Multiple performance optimizations make it significantly faster. #3591, #3593, #3596, #3595, #3611

pivotp — Smarter Pivoting with moarstats

pivotp now integrates with moarstats to auto-validate pivot column cardinality before execution, preventing overly wide output (>1000 columns) and guiding users toward better pivot strategies. #3606

to — Named Table Support

The to command gains a --table option for CSV, XLSX and ODS output, letting you write data to a named sheet/table in workbook formats. #3572, #3580


Added

  • scoresql: new command — score SQL queries for safety, complexity and performance #3612
  • scoresql: SQL file support, DuckDB PATH fallback & QSV_DUCKDB_PATH rename #3616
  • to: add --table option for CSV, XLSX and ODS output #3572, #3580
  • searchset: ignore line comments in regexset files #3622
  • pragmastat: add --compare1 and --compare2 options #3591
  • pragmastat: use stats cache to only process numeric/date/datetime columns #3593
  • pragmastat: write results to stats cache #3596
  • pragmastat: multiple performance optimizations #3595, #3611
  • pivotp: smarter pivoting with moarstats integration #3606
  • describegpt: scoresql integration #3624

Changed

  • stats: reduce day-valued precision to 5 decimals #3607
  • frequency: use array_windows for pairwise comparisons
  • Use mul_add for numeric ops across the codebase for more accurate FMA
  • MSRV bumped to latest stable Rust 1.94
  • Switch csvlens dependency to upstream
  • Polars bumped to 0.53.0 (py-1.39.x series)

Fixed

  • stats: fixed big performance regression caused by memory-aware chunking logic error #3598
  • help: fine-tune markdown generation of docopt usage text #3600

Dependencies

  • Polars 0.53.0 (py-1.39.3)
  • pragmastat 11.1.0 → 12.0.0 #3589
  • qsv-stats 0.47.0 → 0.48.0 #3587
  • jsonschema 0.44.0 → 0.45.0 #3592
  • minijinja/minijinja-contrib 2.16.0 → 2.18.0
  • calamine 0.33 → 0.34
  • cached 0.58 #3594
  • Removed patched forks of self_update and pragmastat (upstream releases available)
  • Various other dependency bumps (toml, toon-format, tempfile, redis, libc, sysinfo, once_cell, spreadsheet-ods)

Full Changelog: 17.0.0...18.0.0

Note

qsv 18.0.0 is not published to crates.io. qsv depends on an unreleased git revision of Polars, and cargo publish strips [patch.crates-io] entries, causing dependency resolution to fail against the published Polars v0.53.0 on crates.io (which caps chrono <=0.4.41, incompatible with chrono 0.4.44). This will be resolved once Polars publishes a new crates.io release with updated chrono support. In the meantime, install qsv via the prebuilt binaries, various package managers, or by building from source.

Don't miss a new qsv release

NewReleases is sending notifications on new releases.