agentsclimarketplace

Visidata

Skill cbrunnkvist/agent-skills/skills/visidata

Install
npx -y skills add cbrunnkvist/agent-skills --skill visidata

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use VisiData CLI (`vd`) for terminal dataset exploration, cleanup, conversion, joins, profiling, exports, and `.vdj` replay workflows. Trigger for unknown/messy CSV, TSV, JSONL, XLSX, SQLite, Parquet, GeoJSON, fixed-width, or HTML table data. Not for VisiData Python API/plugin development.

SKILL.md

9.5 KB, as published. Nobody here has run it

VisiData CLI Skill

VisiData is a terminal multiplexer for investigating and manipulating tabular data. It reads CSV, TSV, JSON, Excel, SQLite, and dozens of other formats, and provides vim-like keybindings for interactive exploration.

High-Value Patterns

  • Convert unfamiliar datasets between formats with vd -b input -o output.
  • Generate .vdj command logs for guided interactive exploration or repeatable cleanup.
  • Triage unknown data: inspect columns, set types, find nulls/outliers, summarize categories.
  • Clean messy CSV/Excel exports with quoting, Unicode, dates, currencies, and mixed types.
  • Join, diff, append, or reconcile two datasets interactively before saving.
  • Use vd in pipelines when a human should visually select/filter rows.

Installation

macOS (Homebrew — recommended)

brew install visidata

All platforms (pip)

Requires Python 3.8+.

pip3 install visidata

If vd is not found after pip install, check that ~/.local/bin (Linux) or the Python scripts directory is on $PATH.

Conda

conda install --channel conda-forge visidata

Linux (distribution package managers)

# Debian/Ubuntu
sudo apt install visidata

# Fedora
sudo dnf install visidata

# Arch Linux
sudo pacman -S visidata

# NixOS
nix-env -i visidata

Windows

Use Windows Subsystem for Linux (WSL) or MSYS2's Python, then install via pip inside that environment.

Upgrade

pip install --upgrade visidata
# or
brew upgrade visidata

Verify

vd --version

CLI Usage

Basic launch

vd data.csv                  # open a file
vd a.tsv b.json c.xlsx      # open multiple files (last one displayed on top)
vd .                         # open DirSheet to browse filesystem

Piping data

ps aux | vd                  # pipe into vd
vd - < data.tsv              # redirect from file
cat query.sql | mysql | vd   # chain with other tools

Key CLI flags

FlagPurpose
-f TYPEForce input filetype (e.g. -f csv, -f sqlite, -f fixed)
-o FILEOutput to FILE (extension determines format)
-of TYPEForce output filetype
-bBatch mode (non-interactive, for scripts)
-p FILE.vdjReplay a command log
-dDump format (output to stdout on quit)
--header NNumber of header rows (default: 1; use --header=0 for headerless)
-f ""Reset to extension-based detection after a -f flag

Important: -f applies to all subsequent input paths on the command line, not just the one immediately following. Use -f "" to reset.

Format conversion

vd -b input.csv -o output.json          # convert csv → json
vd -b data.fixed -of csv -o data.txt    # force output format

Not all loader formats support saving. Check vd --help or the formats reference for supported output types.

Core Keybindings

Navigation

KeyAction
↑↓←→ / PgUp/PgDn / Home/EndMove cursor
h j k lMove one cell (vim-style)
gh gj gk glMove to edge of sheet
< / >Jump to next different value in column
{ / }Jump to next/prev selected row
Ctrl+^Jump to previous sheet
qQuit current sheet
gqQuit all sheets (global quit)

Search

KeyAction
/ / ?Search current column (regex, forward/back)
g/ / g?Search all visible columns
n / NNext/previous match
z/ / z?Search by Python expression

Selection

KeyAction
s / t / uSelect / toggle / unselect current row
gs / gt / guSelect / toggle / unselect all rows
| / \Select/unselect rows matching regex in current column
g| / g\Select/unselect rows matching regex in any visible column
z| / z\Select/unselect by Python expression
,Select rows matching current cell
g,Select rows matching entire current row

Sorting

KeyAction
[ / ]Sort ascending/descending by current column
g[ / g]Sort by all key columns
z[ / z]Add to existing sort criteria
!Toggle key column status

Column Operations

KeyAction
-Hide current column
gvUnhide all columns
H / LSlide column left/right
^Rename column
!Pin column as key column
Shift+COpen Columns sheet

Column Types

KeyType
~string
#int
%float
$currency
@date
z#vlen (value length)
z~anytype

Editing

KeyAction
eEdit current cell
ge TEXTSet current column for selected rows to TEXT
g* regex TAB substFind/replace in selected rows
g= exprEvaluate Python expression on selected rows
EnterAccept input
Ctrl+C / EscAbort input
Ctrl+OOpen cell in external $EDITOR

Derived Columns

KeyAction
=Create column from Python expression (name=expr or just expr)
g=Set column value for selected rows
z=Set column value for current row

Available variables in expressions: column names (typed value), vd, sheet, col, row, curcol, cursorCol, currow.

Aggregation & Grouping

KeyAction
+ aggAdd aggregator to current column
z+ aggShow aggregator result for selected rows
Shift+FOpen frequency table for current column
g Shift+FFrequency table by all key columns
Shift+IOpen describe sheet (descriptive stats)
Shift+WOpen pivot table

Available aggregators: min, max, avg/mean, mode, median, sum, distinct, count, stdev, list, q3/q4/q5/q10.

Sheets

KeyAction
Shift+SOpen Sheets sheet (all opened sheets)
z Shift+SOpen Sheets stack (active sheets)
oOpen a file from within vd
EnterJump to sheet from Sheets sheet

Joining & Combining

KeyAction
&Open join chooser (inner, outer, full, diff, extend, merge, append, concat)
"Open duplicate sheet with selected rows
g"Duplicate sheet with all rows, selected ones stay selected
z"Copy of sheet with copies of selected rows (no source link)

Saving

KeyAction
Ctrl+SSave current sheet
Shift+DOpen CommandLog sheet
Ctrl+DSave command log

Graphs

KeyAction
.Graph current column (requires numeric x-axis set with !)
g.Graph all visible numeric columns

Other

KeyAction
Shift+ANew blank sheet
za / gza NAdd 1 / N blank columns
a / ga NAdd 1 / N blank rows
vToggle multi-line rows
Ctrl+HHelp / Commands sheet
Shift+OOptions sheet
z Ctrl+SSave options to config
Space longnameExecute command by longname

Typical Workflows

Explore → filter → save

vd data.csv
  1. ! on a column to mark it as key
  2. / or z| to filter/select rows
  3. " to open a duplicate with selected rows
  4. Ctrl+S to save

Format conversion (batch)

vd -b input.csv -o output.json
vd -b data.fixed -of tsv -o data.txt

Batch replay a command log

vd -b -p transform.vdj input.csv -o output.csv

The .vdj file records keystrokes. To make it file-independent, remove the open-file line and blank all "sheet" values in the .vdj.

Pipe processing

ps aux | vd | awk '{print $2}'            # visually inspect processes, then print selected PIDs
mysql < query.sql | vd | awk '{print $1}' # manually filter/query results

Use Ctrl+Q to output current sheet to stdout (keeps top sheet on stack). Use q/gq to quit without outputting.

Gotchas

  • q vs gq: q quits the current sheet. gq quits all sheets. If you just want to output data via pipe, use Ctrl+Q.
  • -f scope: -f csv data.txt applies csv parsing to ALL subsequent input paths until you reset with -f "".
  • File format inference: Unknown extensions load as Text sheets. Use -f to force a loader.
  • Column types matter: Sorting/filtering numerical data requires setting the column type first (# for int, % for float, @ for date). Default is anytype (string-like).
  • Edits propagate: Changes to rows on derived sheets (duplicates, frequency tables) propagate back to source sheets. Use z" for an independent copy.
  • -b is non-interactive: Batch mode disables all UI. Use for scripted conversion and replay only.
  • Selection is global: Selecting rows on a frequency table also selects them on the source sheet.
  • Ctrl+Q vs q in pipes: Ctrl+Q outputs the current sheet to stdout. q/gq outputs nothing.
  • No undo for some operations: Column hiding, sort changes, and some edits cannot be undone.

Reference Files

For deep dives on specific topics, load the relevant reference from references/. See references/INDEX.md for a topic-grouped index.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.