v1.5.2 (2019-01-12)

We are starting off the New Year with a very small patch for a few bugs.


  1. Fixed g*
    • thanks to both @jsvine and @layertwo for noticing and notifying us.
  2. If suspended during editline (with Ctrl+Z), VisiData will now correctly resume in the editline.
  3. Ctrl+W on an empty value in editline does not error out of the editline.

And that's it.

Happy new year, everyone!

v1.5.1 (2018-12-17)

v1.5.1: Bugfixes and user feedback

The initial motivation for this patch was to fix an idle performance regression. In the interim, though, we have received a bunch of feedback for improvements and a couple of feature requests.

So thanks for all of your ongoing engagement and for continuing to share VisiData with the world. We hope you enjoy this final release of 2018!

A brief overview:

  1. Improvements to the pandas loader.

    • thanks to @nickray for the bughunting
  2. When set to True options.bulk_select_clear bulk select commands (|, g|, ,, etc) will clear the previously selected rows.

    • the default is set to False and exhibits the current behaviour of retaining the already selected rows
    • thanks to @aborruso for the suggestion
  3. Shift+O once again pushes the global options sheet. You can find the sheet options by pressing zO. gO now opens the .visidatarc which can be edited and saved from within the VisiData interface.

  4. Sorting is now asynchronous, per user request. Please let us know how you find it.

    • thanks to @apnewberry for starting that conversation
  5. gz^ now renames all visible columns to contents of selected rows and gz* substitutes over all visible columns

    • thanks, once again, to @aborruso for both suggestions

As usual, the complete list of changes can be found in the Changelog.

v1.5 (2018-11-02)

For the most part, this is a bugfix release. A few other improvements are here as well:

  1. Basic plugin support
    • ~/.visidata added to sys.path on startup
    • copy plugin to e.g. ~/.visidata/vdfoo.py
    • add import vdfoo to .visidatarc to activate
  2. Error saving
    • for tsv and json, errors are saved as options.safe_error string (default #ERR)
    • if that option is an empty string, error message is saved instead
  3. Mouse improvements
    • click now moves to column also
    • right-click to edit cell, rename column, or rename sheet, depending on where clicked.
  4. xls/xlsx loaders now use options.header to determine number of rows used to set column names (default is 1).

See the CHANGELOG for a more complete list of bugfixes and changes.

v1.4 (2018-09-24)

This is largely a bugfix and performance release. It was originally planned as a patch release (v1.3.2), but some features and interface changes crept in, so it is officially v1.4.

As usual, a more complete list of changes and features is in the CHANGELOG.

See the ROADMAP for the planned future direction of VisiData.

v1.3.1 (2018-08-19)

We found some issues with 1.3 (aggregators interacting with nulls/errors, primarily) that we didn't want to let sit until 1.4. So we fixed those issues and a couple others, and added a few 'minor' features. This patch version should be a definitive improvement over the base 1.3 version.

The complete list of changes is in the CHANGELOG. Here are the new options and features:

v1.3 (2018-08-11)

It's been a productive 3 months since v1.2. The largest effort in this release was a commands/options reworking, which will hopefully pay dividends in the future. Many other so-called improvements were made as well. Here's a list of most of them:


changes to existing commands and options


new safety options

new power features

nice things

new loaders

minor changes

known issues

v1.2.1 (2018-07-06)

@deinspanjer (issue #164) discovered that VisiData doesn't work with Python3.7 due to our use of the 'async' identifier, which is now off-limits as it is a formal keyword as of 3.7. The only change in 1.2.1 is changing 'async' to 'asyncthread' in order to work with Python 3.7.

Thanks to the illustrious @anjakefala for getting this release out quickly and without incident (knock on wood).

v1.2 (2018-05-03)

Here are the major feature enhancements for v1.2. Please see the CHANGELOG for the complete list.

Major features

New commands and options


New supported formats and sources

v1.1 (2018-03-06)

This is the first release since 1.0. The major additions and changes:

New supported formats:

These commands have been added or changed, and are expected to stay in future versions:

These additions are more experimental and may not stay in future versions:

Other minor changes:

Finally, some other news:

Thanks to everyone who contributed to this release! As always, feedback and suggestions are welcome and appreciated.

v1.0 (2018-01-25)

VisiData 1.0 has been officially released! Changes since the 0.99 release candidate:

This is a huge milestone for VisiData. I devoted my sabbatical (the entire year of 2017) to creating an open-source tool that would be useful for myself and other terminal users, and it was very important for me to release a stable and lasting 1.0 so that it could be set aside when I resumed working.

We could have gotten away without certain features and with fewer supported formats, but there is such breadth and depth included in 1.0 (as shown by demos like this one at the PyCascades 2018 conference), that I'm hard-pressed to choose which features should have been omitted.

I owe a great deal to many people who have helped and supported me through this process. VisiData would not be what it is without them. The list of contributors includes everyone who has submitted to the repository, but there are some other groups to whom VisiData and I are eternally indebted:

Finally, a very special thanks to Anja for her incredible help in putting together the website, documentation, tests, and various releases.

Share and enjoy!

v0.99 (2017-12-22)

This is a 1.0 release candidate.

No changes will be made on stable before 1.0 except for targeted bugfixes with minimal likelihood of regressing anything else. If there are any more bugfixes to be applied, they will be cherry-picked from continuing develop. Either v0.99 or v0.99.1 will become the formal 1.0 in a few weeks.

User-facing changes in this version:

v0.98.1 (2017-12-04)

v0.98.1 is a patch release that fixes a couple of minor bugs. The primary change in this release, however, is that the 'visidata' package on PyPI no longer includes all of the loaders' dependencies by default.

This is a minor hassle for first-time users if they want to use certain formats, but since the goal is eventually supporting every possible data format, installing all dependencies for all users by default is not tenable. The base VisiData already includes support for tsv, csv, fixed width, sqlite, graphs and more. Most users will only need one or two additional dependencies.

To install VisiData with all dependencies for all loaders:

pip3 install "visidata[full]"

Of course, you can install just the dependencies you need. See "SUPPORTED SOURCES" in the manpage for which packages to install.

v0.98 (2017-11-23)

Title: VisiData v0.98, now with graphs and maps (experimental)

When I announced that v0.97 was "feature complete", I must have been talking about vdtui. vdtui has been pretty stable, even as VisiData has added a low-resolution pixel canvas (using Braille unicode characters) to draw graphs and maps. In fact, apart from a few bug fixes and small API changes, the only addition to vdtui in v0.98 is basic mouse support.

Here's a list of what's new in VisiData v0.98:

v0.97.1 (2017-10-29)

It's VisiData's 1st birthday! I started working on VisiData 1 year ago today (Oct 29).

v0.97.1 has only a few small patches:

v0.97 (2017-10-06)

Important If you like VisiData, sign up for the newsletter!


v0.97 has been released

The main themes for this release are: 1) commandlog replay fully operational (now running both automated tests and generating tours) 2) a quick ref guide in man page format (available in visidata via F1, and also online at visidata.org/man 3) visidata.org is now the primary home page (we've transitioned away from readthedocs)

There are also the usual suspects: new loaders, new commands, new options, and too many improvements and bugfixes to name. It is getting ever easier to write a new command or loader in a few minutes and have it just work.

With this release, VisiData is feature complete. There will still be many reworkings, interface changes, added commands, tweaks, embellishments, arguments, and explanations, but as far as I can see, all of the functionality is now there. We are inching ever closer to a v1.0 that will hopefully stand the test of time.

The main goals for the next release (v0.98) are 1) a set of great tours, and 2) documentation of the internal architecture: design decisions, implementation guidelines, and API references.

Here are some more detailed descriptions of what comes with this release:

New Loaders

New Commands and Options

v0.96 (2017-08-23)

v0.93 (2017-07-30)

v0.92 (2017-07-11)

v0.91 (2017-06-29)

v0.61 (2017-06-11)

v0.41 (2017-01-18)

v0.37 (2017-12-11)

v0.31.1 (2016-11-29)

v0.14 (2016-11-13)