Installation and First Run
VisiData is a Python package available via pip (recommended) or system package managers. The pip version is always the most current.
Think of this lesson as your "hello world" for VisiData: install it, open one file, confirm it works, and you're ready for everything that follows.
Install VisiData, open a file, and confirm the interface loads correctly before moving on. Do not spend time exploring — that comes in later lessons.
Installation Methods
Method 1: pip (Recommended)
# Requires Python 3.8+
pip install visidata
# Verify installation
vd --version
# Expected: VisiData v3.x
Method 2: System Package Manager
# Debian / Ubuntu
sudo apt install visidata
# Fedora / RHEL
sudo dnf install visidata
# macOS (Homebrew)
brew install saulpw/vd/visidata
# Arch Linux
sudo pacman -S visidata
The apt version may be significantly older than the pip version. For the latest features and format support, use pip install visidata.
Method 3: pipx (Isolated Install)
# Install pipx first if needed
sudo apt install pipx
# Install VisiData in an isolated environment
pipx install visidata
# Verify
vd --version
Optional Dependencies
VisiData's core is dependency-free, but additional formats require extra packages:
# Excel (.xlsx) support
pip install openpyxl
# Parquet support
pip install pyarrow
# PostgreSQL support
pip install psycopg2-binary
# HDF5 support
pip install h5py
# All extras at once
pip install "visidata[full]"
Your First File
Let's create a simple CSV and open it in VisiData. This is the sample data we'll use:
hostname,ip,role,status
web01,192.168.1.10,webserver,active
web02,192.168.1.11,webserver,active
db01,192.168.1.20,database,active
cache01,192.168.1.30,cache,standby
# Create the practice directory and file
mkdir -p ~/github/practice-folder/visidata/01-loading
cat > ~/github/practice-folder/visidata/01-loading/01-servers.csv << 'EOF'
hostname,ip,role,status
web01,192.168.1.10,webserver,active
web02,192.168.1.11,webserver,active
db01,192.168.1.20,database,active
cache01,192.168.1.30,cache,standby
EOF
# Open with VisiData
vd ~/github/practice-folder/visidata/01-loading/01-servers.csv
What you see on screen:
┌──────────────┬─────────────────┬───────────┬─────────┐
│ hostname │ ip │ role │ status │
│──────────────┼─────────────────┼───────────┼─────────│
│ web01 │ 192.168.1.10 │ webserv… │ active │
│ web02 │ 192.168.1.11 │ webserv… │ active │
│ db01 │ 192.168.1.20 │ database │ active │
│ cache01 │ 192.168.1.30 │ cache │ standb │
└──────────────────────────────────────────────────────┘
01-servers.csv 4 rows hostname
- The top row shows column names
- The bottom line shows: filename, row count, current column name
- The cursor (highlighted row) starts on the first data row
Essential First Keystrokes
Once inside VisiData, try these immediately:
| Key | Action |
|---|---|
Arrow keys / hjkl | Move cursor (up/down/left/right) |
q | Quit current sheet (go back one level) |
gq | Quit VisiData entirely |
Ctrl+H | Open full man page |
Alt+H | Open help menu |
Ctrl+G | Show cursor position and sheet bounds |
Open a File and Browse It
vd ~/github/practice-folder/visidata/01-loading/01-servers.csv
# Inside VisiData:
# Press → or l → move cursor to next column
# Press ↓ or j → move cursor down one row
# Press G → jump to last row
# Press gg → jump to first row
# Press q → quit (back to terminal)
Common Installation Issues
| Problem | Cause | Fix |
|---|---|---|
vd: command not found | pip installed to user path not in PATH | Add ~/.local/bin to PATH |
ModuleNotFoundError: curses | Windows environment | VisiData requires Unix/Linux/macOS terminal |
| Garbled display | Non-UTF-8 terminal | Set export LANG=en_US.UTF-8 |
| Colors missing | TERM not set correctly | Set export TERM=xterm-256color |
Fix PATH for pip user install
# Add to ~/.bashrc or ~/.zshrc
export PATH="$HOME/.local/bin:$PATH"
# Reload
source ~/.bashrc
Hands-On Practice
# 1. Open a log file directly
vd /var/log/syslog
# 2. Open a directory (Directory Sheet)
vd /var/log/nginx/
# 3. Open multiple files at once
vd ~/github/practice-folder/visidata/01-loading/01-servers.csv /var/log/auth.log
# Use Shift+S to switch between them