alexpasmantier/television
{ "createdAt": "2024-09-15T22:16:18Z", "defaultBranch": "main", "description": "A portable and hackable fuzzy finder for the terminal.", "fullName": "alexpasmantier/television", "homepage": "https://alexpasmantier.github.io/television/", "language": "Rust", "name": "television", "pushedAt": "2025-11-25T23:32:13Z", "stargazersCount": 3734, "topics": [ "cli", "command-line-tool", "fuzzy", "fuzzy-finder", "fuzzy-matching", "fuzzy-search", "fuzzyfinder", "grep", "rust", "terminal", "tui" ], "updatedAt": "2025-11-27T03:33:04Z", "url": "https://github.com/alexpasmantier/television"}
A fast and hackable fuzzy finder for the terminal.
![tv’s files channel]!(./assets/tv-transparent.png)
Television is a fast 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)
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]!(./assets/tv-transparent.png)
Switch channels using the remote control and pick from a list of community-maintained channels or create your own!.
![tv remote]!(./assets/tv-files-remote.png)
See the channels docs for more info on how to set these up.
Installation
Section titled “Installation”Automatic installation script:
Section titled “Automatic installation script:”curl -fsSL https://alexpasmantier.github.io/television/install.sh | bashPackage managers:
Section titled “Package managers:”MacOS:
Section titled “MacOS:”brew install televisionLinux:
Section titled “Linux:”pacman -S television- Debian/Ubuntu:
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.debecho $VERsudo dpkg -i tv-$VER-x86_64-unknown-linux-musl.deb- Chimera Linux:
apk add chimera-repo-userapk add television- Nix:
nix run nixpkgs#televisionWindows:
Section titled “Windows:”scoop bucket add extrasscoop install televisionwinget install --exact --id alexpasmantier.televisionNetBSD:
Section titled “NetBSD:”pkgin install televisionCross-platform:
Section titled “Cross-platform:”cargo install televisionpixi global install televisionPrecompiled binaries:
Section titled “Precompiled binaries:”Download the latest release from the releases page.
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 tvmy_program | tv
fd -t f . | tv --preview 'bat -n --color=always {}'
# or build your own channel on the flytv --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
Section titled “Using tv inside your favorite editor”- Neovim: tv.nvim (lua)
- Vim: tv.vim (vimscript)
- Zed: Easy Telescope-style file finder in Zed using television
- VSCode: using television as a file picker inside vscode
Credits
Section titled “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: