Skip to content

alexpasmantier/television


A portable and hackable fuzzy finder for the terminal.

GitHub Release docs.rs GitHub branch check runs GitHub License Discord

tv's files channel

About

Television is a portable and hackable fuzzy finder for the terminal.

It lets you search in real time through any kind of data source (called "channels") such as:

  • files and directories
  • code
  • notes
  • processes
  • git repositories
  • environment variables
  • docker containers
  • ...and much more (creating your own channels)

with support for previewing results, customizable actions and keybindings, and integration with your favorite shell and editor.

TL;DR

Create a new channel: ~/.config/television/cable/files.toml

[metadata]
name = "files"
description = "A channel to search through files and directories"
requirements = ["fd", "bat"]

[source]
command = "fd -t f"

[preview]
command = "bat -n --color=always '{}'"
env = { BAT_THEME = "Catppuccin Mocha" }

Start searching:

tv files

tv files

Switch channels using the remote control and pick from a list of community-maintained channels or create your own.

tv remote

See the channels docs for more info on how to set these up.

Installation

  1. Automatically select the best installation method
  2. Linux
  3. MacOS
  4. Windows
  5. NetBSD
  6. Cross-platform
  7. Precompiled binaries

Automatically select the best installation method

Running the following command will detect your OS and install television using the best available method:

curl -fsSL https://alexpasmantier.github.io/television/install.sh | bash

Linux

pacman -S television
VER=`curl -s "https://api.github.com/repos/alexpasmantier/television/releases/latest" | grep '"tag_name":' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/'`
curl -LO https://github.com/alexpasmantier/television/releases/download/$VER/tv-$VER-x86_64-unknown-linux-musl.deb
echo $VER
sudo dpkg -i tv-$VER-x86_64-unknown-linux-musl.deb
apk add chimera-repo-user
apk add television
nix run nixpkgs#television

MacOS

brew install television

Windows

scoop bucket add extras
scoop install television
winget install --exact --id alexpasmantier.television

NetBSD

pkgin install television

Cross-platform

cargo install television
pixi global install television

Precompiled binaries

Download the latest release from the releases page.

Usage

tv  # default channel

tv [channel]  # e.g. `tv files`, `tv env`, `tv git-repos`, `tv my-awesome-channel` etc.

# pipe the output of your program into tv
my_program | tv

fd -t f . | tv --preview 'bat -n --color=always {}'

# or build your own channel on the fly
tv --source-command 'fd -t f .' --preview-command 'bat -n --color=always {}' --preview-size 70

Tip

🐚 Television has builtin shell integration. More info here.

For more information, check out the docs.

Using tv inside your favorite editor

Credits

This project was inspired by the awesome work done by the telescope neovim plugin.

It also leverages the great helix editor's nucleo fuzzy matching library, the tokio async runtime as well as the formidable ratatui library.

A special thanks to tv's contributors for their help and support: