How to Install and Use Television (tv) in Linux for Blazing-Fast Fuzzy Finding and Previews

Modern command-line environments demand rapid file exploration, previewing, and interactive filtering. While tools like fzf have set the benchmark for fuzzy finding, Television (executed via the binary command tv) represents the next evolution: a blazing-fast, terminal-based fuzzy finder written in Rust that incorporates rich real-time previews, multi-channel parsing, and direct integration into system utilities out of the box.

Whether navigating deep nested directories, inspecting Git commit histories, previewing syntax-highlighted source code, or searching environment variables, Television delivers instantaneous feedback through an intuitive curses-driven interface. In this guide, explore how to install, configure, and maximise your terminal productivity using Television on Linux distributions.

What Sets Television Apart from Standard Fuzzy Finders?

Traditional fuzzy search tools often require secondary preview scripts (such as piping into bat, eza, or custom bash functions) to render file contents alongside candidate lists. Television integrates smart multi-channel selection directly into its core engine, offering distinctive capabilities:

Feature Standard CLI Finders (e.g., Traditional fzf) Television (tv)
Core Architecture Single-stream line filtering Multi-channel selector built with modular Rust channels
Integrated Previews Requires external scripts (e.g. --preview flag) Native syntax-highlighted previews built directly into the UI
Channel Modes Files or standard input streams Dedicated channels: Files, Text Search, Git, Env, and Help
Configuration Environment flags and shell functions Clean, declarative TOML configuration files

Installing Television on Linux Distributions

Because Television is developed in Rust, it is distributed as precompiled binaries, packages across community repositories, and via Cargo. Select the installation route suited to your Linux environment.

Method 1: Installing via Cargo (Universal Linux)

If you maintain a Rust toolchain on your system, install Television directly from crates.io:

cargo install television

Ensure that your local Cargo binary directory (~/.cargo/bin) is present in your shell’s $PATH variable. Check your installation by verifying the active version:

tv --version

Method 2: Installing Precompiled Binaries from GitHub Releases

For systems without a Rust compiler installed, download the precompiled binary directly from the official repository releases:

# Download the latest Linux x86_64 release archive
curl -LO https://github.com/alexpasmantier/television/releases/latest/download/tv-x86_64-unknown-linux-musl.tar.gz

# Extract the archive
tar -xzf tv-x86_64-unknown-linux-musl.tar.gz

# Move the executable binary into your system PATH
sudo mv tv /usr/local/bin/

# Confirm executable permissions
sudo chmod +x /usr/local/bin/tv

Method 3: Installing via Arch Linux (AUR)

Arch Linux users can install Television directly from the Arch User Repository using an AUR helper such as paru or yay:

yay -S television-bin

Core Navigation and Keybindings in Television

Launching Television is as straightforward as entering tv in your terminal. Upon launch, Television displays an interactive prompt alongside an automatic preview pane.

Pro Tip: By default, Television splits your terminal screen horizontally or vertically depending on your terminal geometry, dynamically adjusting the preview pane so code files retain legible line wrapping.

The standard interactive keyboard shortcuts allow fluid navigation without touching the mouse:

Shortcut Action
Ctrl + N or ↓ Move selection down to the next entry
Ctrl + P or ↑ Move selection up to the previous entry
Tab Toggle multi-selection on the highlighted candidate
Enter Accept selection and output matched paths to standard output
Esc or Ctrl + C Cancel and exit the interactive interface
Ctrl + U Scroll the preview pane upwards
Ctrl + D Scroll the preview pane downwards

Utilising Dedicated Channels in Television

Television distinguishes itself through specialised channels. Rather than filtering raw file names alone, channels instruct Television to execute domain-specific lookups.

1. Interactive File Search Channel

To launch standard directory discovery with syntax-highlighted file previews:

tv files

As you type query terms, Television applies fuzzy matching across file paths while streaming the syntax-highlighted contents of the active item in the right-hand panel.

2. Fast In-File Text Search Channel (Ripgrep Integration)

When searching for specific code definitions, keywords, or error codes across hundreds of project files, use the text search channel:

tv text

Television filters matches by scanning file contents, focusing the preview window directly on the matching line numbers within their surrounding context.

3. Environment Variables Channel

Inspect and filter system environment variables in real time without messy printenv | grep pipelines:

tv env

This channel renders the variable name in the selection list and exposes the full variable string, path arrays, or configuration payloads in the preview window.

Integrating Television into Shell Workflows and Editors

Television becomes a primary terminal driver when chained into standard shell scripts or editor invocations. You can capture its standard output directly into commands like nvim, nano, or cd.

Opening Selected Files in Your Preferred Editor

Add a lightweight shell alias to your shell profile (~/.bashrc or ~/.zshrc):

# Open selected files directly in Neovim
alias tvim='nvim $(tv files)'

# Open selected files in micro editor
alias tvm='micro $(tv files)'

Interactive Directory Changing

To swiftly jump between directories across extensive project trees, combine Television with directory filtering:

# Interactive directory jumper function
tvcd() {
  local target_dir
  target_dir=$(find . -maxdepth 4 -type d | tv)
  if [ -n "$target_dir" ]; then
    cd "$target_dir" || return
  fi
}

Customising Television Configuration

Television stores its user configuration in standard XDG directories under ~/.config/television/config.toml. You can customise themes, UI borders, key bindings, and preview behaviours to match your terminal colour scheme.

Create or edit the configuration file using your favourite editor:

mkdir -p ~/.config/television
nano ~/.config/television/config.toml

Insert your preferred display preferences:

[ui]
# Preview pane orientation: "right", "bottom", or "auto"
preview_direction = "right"
# Border style options: "rounded", "thick", "plain"
border_style = "rounded"
show_icons = true

[preview]
# Maximum preview file size in megabytes
max_file_size_mb = 10
# Default tab width for rendered source files
tab_width = 4

Save the file and relaunch tv. Your updated borders, layout orientation, and preview boundaries take effect immediately without requiring shell restarts.

Optimising Terminal Productivity with Television

To maintain peak responsiveness when working inside massive repositories containing hundreds of thousands of files (such as large JavaScript projects with heavy node_modules or complex monorepos), ensure that Television respects your standard .gitignore files. Television natively adopts ignore rules, keeping your search index focused purely on active project code rather than compiled artifacts.

By pairing Television’s responsive Rust core with tailored shell aliases, you eliminate sluggish CLI lookups and streamline daily directory exploration across all your Linux workstations.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.