ScriptsJul 13, 2026·3 min read

VisiData — Terminal Spreadsheet Multitool for Data Exploration

An interactive terminal application for exploring, transforming, and analysing tabular data from CSV, JSON, SQLite, Postgres, and dozens of other formats.

Agent ready

Review-first install path

This asset needs a review step. The copied prompt tells the agent to dry-run, show the writes, then proceed only after confirmation.

Needs Confirmation · 64/100Policy: confirm
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
VisiData Overview
Review-first command
npx -y tokrepo@latest install 9b3d16bb-7eb7-11f1-9bc6-00163e2b0d79 --target codex

Dry-run first, confirm the writes, then run this command.

Introduction

VisiData is a terminal-based tool for rapid exploration and manipulation of tabular data. It opens virtually any structured data format instantly and provides a keyboard-driven interface for sorting, filtering, aggregating, and joining datasets without writing code.

What VisiData Does

  • Opens CSV, TSV, JSON, SQLite, Postgres, Excel, Parquet, HDF5, and 30+ other formats
  • Provides instant frequency analysis, histogram, and pivot table generation
  • Supports regex search, column transformations, and Python expressions inline
  • Saves modified data back to any supported format
  • Handles datasets with millions of rows via lazy loading and streaming

Architecture Overview

VisiData is a pure-Python application built on the curses library. Each data source is loaded through a format-specific loader plugin that yields rows lazily. The sheet abstraction manages columns, types, and sort state. A command system maps single keystrokes to operations, and users can extend functionality with Python snippets in a .visidatarc file.

Self-Hosting & Configuration

  • Install via pip, pipx, conda, or your distro's package manager
  • No external dependencies for CSV/JSON; install optional packages for databases (psycopg2) or Parquet (pyarrow)
  • Customise keybindings and default options in ~/.visidatarc
  • Set options.color_default and theme options for terminal colour schemes
  • Use --play to replay saved command logs for reproducible analyses

Key Features

  • Opens any data format with a single command and no schema definition
  • Keyboard-driven workflow is faster than GUI tools for exploratory analysis
  • Frequency sheets and pivot tables are one keystroke away
  • Command logging enables fully reproducible data exploration sessions
  • Extensible via Python plugins and inline expressions

Comparison with Similar Tools

  • pandas — requires writing Python code; VisiData is interactive and visual
  • csvkit — focused on CSV command-line operations; VisiData adds an interactive TUI
  • Miller — streaming record processor; VisiData adds spreadsheet-style navigation
  • q — SQL on CSV files; VisiData supports SQL and many more formats interactively
  • Tad — GUI CSV viewer; VisiData runs in any terminal without a display server

FAQ

Q: Can it handle very large files? A: Yes. VisiData streams rows lazily and can handle multi-gigabyte files if sufficient memory is available for the visible window.

Q: Is it scriptable? A: Yes. Command logs can be saved and replayed, and .visidatarc supports arbitrary Python.

Q: Does it modify the source file? A: No. Changes exist in memory until you explicitly save to a file.

Q: What Python version is required? A: Python 3.8 or later.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets