Television: Fast general purpose fuzzy finder TUI

github.com

87 points

thunderbong

a day ago


27 comments

seanw444 a day ago

Bonus points for "written in Rust" not being in the first sentence.

I may give this a try and see how it compares to fzf.

  • juliangmp a day ago

    To be fair it starts with "Blazing Fast" which very much gives it away

    • dietr1ch a day ago

      TBF when dealing with I/O using the right async constructs is way more important than the choice of programming language, I/O times will dominate and any mistake on the wrong wait will ruin performance.

      • juliangmp a day ago

        Absolutely but "blazing fast" has become kind of a meme among rust projects. Getting a bit tired of seeing it everywhere personally, at least show me some benchmarks when you make claims like this.

        No shade against this project (or rust in general) though, it looks very nice and I wanna try it out.

    • VeejayRampay a day ago

      I think the blazing fast has become a meme at this point and people use it very tongue-in-cheek

      • DemocracyFTW2 18 hours ago
        2 more

        ...but is it web-scale?

  • hulitu a day ago

    Bonus points for the name being chosen after a bottle of whisky.

dalton_zk a day ago

I look the gif and think, seems like Telescope, and continue reading its said the one inspiration came for that.

I love this way to find something out of the box, after telescope I never more use the file explorer.

4by4by4 a day ago

This seems similar to fzf with a nice default experience (quick access to fuzzy search files, shell history, git log) and a subset of features.

I use fzf to hack together custom TUIs (a calculator, clipboard search, quick LLM chat). The killer feature for me is `--bind` to bind keys and events to custom actions.

keyle a day ago

The demo video is a bit fast, I couldn't really follow.

It looks like an fzf alternative?

CGamesPlay a day ago

Without trying to imply that this thing needs to be “different” from fzf, but how is it different, if at all? A comparison would be appreciated.

  • alexpasmantier a day ago

    tv isn’t intended to be a direct competitor to fzf, but since the two share similarities, here’s a quick breakdown of how tv differs:

    - Batteries-included experience: tv is designed to work out of the box, with minimal setup.

    - Smart shell integration: Autocomplete intelligently selects the right source for you.

    - Interactive data source switching: You can change the data source on the fly without exiting the application.

    - Centralized configuration: All settings are managed in one place, eliminating the need for custom shell scripts.

    - Transitions feature: Enables interactive piping of results through multiple steps (e.g., git-repos > files > textual content in files).

    - Built-in syntax-highlighted previews: More robust and integrated compared to configuring something like fzf --preview 'bat -n --color=always {0}'.

    That said, tv is still an early-stage project (while fzf has been evolving for over 11 years). I’m also planning to draw inspiration from some of fzf’s excellent features in the future.

    • eitau_1 21 hours ago

      Great work!

      From the README:

      > is designed to be easily extensible

      Can you elaborate a little on that?

      • alexpasmantier 20 hours ago

        Television is designed with a "framework-like" approach in mind. Here’s what makes it easy to extend (in a nutshell):

        - Custom Cable Channels: You’re not limited to the built-in channels. You can create your own "cable channels"—essentially custom data sources—by tweaking a simple config file. As the project grows, the vision is for users to contribute their own channel recipes to the wiki, making it easy for others to pick and choose what suits their needs.

        - Smart Shell Integration: Television integrates seamlessly with your shell, offering features like smart autocomplete and interactive piping of results. It’s also fully customizable, so you can tweak the smart autocomplete behavior or other features to match your workflow.

        - Coming Soon: User-definable custom actions within cable channel recipes for an even more streamlined and tailored experience.

        This probably doesn’t answer everything, but I’d be happy to dive into more details about any of the points above! :-)

lolotteiscode a day ago

Since I started using this, I have stop using Grep

forrestthewoods a day ago

Interesting. I’ve never found a fuzzyfinder that “just worked” on windows for fuzzy searching in files under the current directory. Will give it a shot.

motheas a day ago

i might give it a try the project looks well maintained with +1K stars

VeejayRampay a day ago

two things about this: great work on the packaging side of things (I installed it through brew in seconds) and shell integration by default is a really really nice touch, it streamlines everything, great job

northisup a day ago

what is the tl;dr on this vs fzf?

  • cocodill a day ago

    tv's file previewer is active per default, for fzf you have to hack it via --preview arg. subjectively tv is searching faster and previewer works faster than the fzf-preview.sh

    • throwaway290 a day ago

      It is obvious that tv is blocking on file preview. I can hold up key and zip up and down in fzf. In tv it causes obvious jank, I guess it waits for every file to render. Fzf doesn't make this mistake because preview is async. It's a clear winner when input lag is concerned.

      • alexpasmantier a day ago
        2 more

        Author here—thanks for trying out tv and for sharing your feedback, I really appreciate it.

        The preview window in tv is designed to compute its content asynchronously. This approach ensures smooth input handling and maintains overall UI responsiveness. You can test this yourself by using a custom preview command that simulates a delay, like so:

          tv --preview "sleep 1 && echo 'the preview'"
        
        You'll notice that even with a delay, the UI remains responsive and doesn't block.

        That said, I'm sure there's always room for improvement, and I'd be happy to hear your thoughts or suggestions if you're open to discussing it further.

        • throwaway290 4 hours ago

          I see preview renders after the cursor moved, but still cursor moves in jumps unlike fzf. Maybe if you focus on search you don't care about it.