6.8 KiB
About
Television
is a fast and versatile fuzzy finder TUI.
It lets you quickly search through any kind of data source (files, git repositories, environment variables, docker images, you name it) using a fuzzy matching algorithm and is designed to be easily extensible.
It is inspired by the neovim telescope plugin and leverages tokio and the nucleo matcher used by the helix editor to ensure optimal performance.
Features
-
⚡️ High Speed: asynchronous I/O and multithreading to ensure a smooth and responsive UI.
-
🧠 Fuzzy Matching: cutting-edge fuzzy matching library for efficiently filtering through lists of entries.
-
🔋 Batteries Included: comes with a set of builtin channels and previewers that you can start using out of the box.
-
🐚 Shell Integration: benefit from smart completion anywhere using
television
's shell integration. -
📺 Channels: designed around the concept of channels, which are a set of builtin data sources that you can search through (e.g. files, git repositories, environment variables, etc).
-
📡 Cable Channels: users may add their own custom channels to tv using a simple and centralized configuration file.
-
📜 Previewers: allows you to preview the contents of an entry in a separate pane.
-
🖼️ Builtin Syntax Highlighting: comes with builtin asynchronous syntax highlighting for a wide variety of file types.
-
🎛️ Keybindings: includes a set of intuitive default keybindings inspired by vim and other popular terminal shortcuts.
-
🌈 Themes: either use one of the 10 builtin themes or create your own easily.
-
📦 Cross-platform: works on Linux, MacOS and Windows.
-
✅ Terminal Emulator Compatibility: television works flawlessly on all major terminal emulators.
Installation
See the installation docs.
Usage
tv [channel] #[default: files] [possible values: env, files, git-repos, text, alias]
# e.g. to search through environment variables
tv env
# piping into tv (e.g. logs)
my_program | tv
# piping into tv with a custom preview command
fd -t f . | tv --preview 'bat -n --color=always {0}'
For more information on the different channels, see the channels documentation.
Television can also integrate with your shell to provide autocompletion based on the commands you start typing. See Shell Autocompletion.
https://github.com/user-attachments/assets/395f17f6-14b9-4015-a50a-648259d9f253
Keybindings
Default keybindings are as follows:
Key | Description |
---|---|
↑ / ↓ or Ctrl + p / n or Ctrl + k / j | Navigate through the list of entries |
Ctrl + u / d | Scroll the preview pane up / down |
Enter | Select the current entry |
Ctrl + y | Copy the selected entry to the clipboard |
Ctrl + r | Toggle remote control mode |
Ctrl + s | Toggle send to channel mode |
Ctrl + g | Toggle the help panel |
Ctrl + o | Toggle the preview panel |
Esc | Quit the application |
These keybindings are all configurable (see Configuration).
Configuration
Default configuration: config.toml
Locations where television
expects the configuration files to be located for each platform:
Platform | Value |
---|---|
Linux | $HOME/.config/television/config.toml |
macOS | $HOME/.config/television/config.toml |
Windows | {FOLDERID_LocalAppData}\television\config |
Or, if you'd rather use the XDG Base Directory Specification, tv will look for the configuration file in
$XDG_CONFIG_HOME/television/config.toml
if the environment variable is set.
Themes
Builtin themes are available in the themes directory. Feel free to experiment and maybe even contribute your own!
![]() |
![]() |
---|---|
![]() |
![]() |
You may create your own custom themes by adding them to the themes
directory in your configuration folder and then referring to them by file name (without the extension) in the configuration file.
config_location/
├── themes/
│ └── my_theme.toml
└── config.toml
Search Patterns
television
uses a fuzzy matching algorithm to filter the list of entries. Its behavior depends on the input pattern you provide.
Matcher | Pattern |
---|---|
Fuzzy | foo |
Substring | 'foo / !foo to negate |
Prefix | ^foo / !^foo to negate |
Suffix | foo$ / !foo$ to negate |
Exact | ^foo$ / !^foo$ to negate |
For more information on the matcher behavior, see the nucleo-matcher documentation.
Terminal Emulators Compatibility
Here is a list of terminal emulators that have currently been tested with television
and their compatibility status.
Terminal Emulator | Tested Platforms | Compatibility |
---|---|---|
Alacritty | macOS, Linux | ✅ |
Kitty | macOS, Linux | ✅ |
iTerm2 | macOS | ✅ |
Ghostty | macOS | ✅ |
Wezterm | macOS, Linux, Windows | ✅ |
macOS Terminal | macOS | functional but coloring issues |
Konsole | Linux | ✅ |
Terminator | Linux | ✅ |
Xterm | Linux | ✅ |
Cmder | Windows | ✖️ |
Foot | Linux | ✅ |
Rio | macOS, Linux, Windows | ✅ |
Warp | macOS | ✅ |
Hyper | macOS | ✅ |
Contributions
Contributions, issues and pull requests are welcome.
See CONTRIBUTING.md and good first issues for more information.