For a fuzzy finder for filtering lists in the terminal, the first results are skim-rs/skim (Skim is a cross-platform interactive terminal fuzzy finder with advanced query syntax fuzzy, exact, inverse, prefix, suffix, AND/OR, a preview pane, multi-select, and pipe integration, directly matching the need for fuzzy filtering and selection over lists), junegunn/fzf (fzf is the premier terminal fuzzy finder, supporting fuzzy matching, stdin pipe integration, customizable keybindings, a preview window, multiple selection, and rich search syntax — exactly what this search is after) and peco/peco. lotabout/skim and alexpasmantier/television round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Command-line utilities that provide interactive filtering and selection for lists within your terminal environment.
Skim is a cross-platform interactive fuzzy finder that runs as a terminal application, a Rust library, a Vim and Neovim plugin, and a shell integration tool. It provides real-time filtering and selection from lists of items, supporting keyboard and mouse navigation, live preview panes, and multi-select functionality across Linux, macOS, and Windows. The tool distinguishes itself through a composable query expression tree that supports fuzzy, exact, inverse, prefix, suffix, and logical AND/OR operators, combined with a Smith-Waterman scoring engine that penalizes typos and gaps for natural rel
Skim is a cross-platform interactive terminal fuzzy finder with advanced query syntax (fuzzy, exact, inverse, prefix, suffix, AND/OR), a preview pane, multi-select, and pipe integration, directly matching the need for fuzzy filtering and selection over lists.
This project is a general-purpose command-line filter that provides an interactive interface for processing standard input streams. It enables real-time fuzzy searching, data selection, and transformation, allowing users to navigate complex information or file systems directly within their terminal. By utilizing a pipe-oriented architecture, it integrates into existing shell pipelines and workflows to facilitate efficient data exploration. What distinguishes this tool is its highly extensible, event-driven design that allows for deep integration with external processes. It supports asynchrono
fzf is the premier terminal fuzzy finder, supporting fuzzy matching, stdin pipe integration, customizable keybindings, a preview window, multiple selection, and rich search syntax — exactly what this search is after.
Peco is an interactive text filter and fuzzy finder for the terminal. It serves as a terminal user interface selection tool that filters standard input in real-time using fuzzy matching and regular expressions. The tool preserves and renders ANSI color escape sequences from piped input streams while performing matching logic on plain-text versions. It supports multi-stage filtering, allowing users to freeze result sets to create a new base for subsequent refinements. Capability areas include advanced search filtering with negative matching, multi-item selection, and the ability to pipe selec
Peco is an interactive terminal fuzzy finder that filters standard input in real-time using fuzzy matching and regular expressions, with support for multi-item selection and pipe integration — exactly the kind of tool this search is after, though it may not include a preview window or customizable keybindings.
Skim is an interactive text filter and terminal selection tool written in Rust. It functions as a command line interface utility that processes input streams to isolate specific entries through real-time user queries and sorting. The tool differentiates itself through ANSI compatibility, allowing it to parse color codes and maintain text formatting during the search process. It supports multiple matching strategies, including configurable fuzzy matching algorithms and regular expression integration. The application covers a broad range of capabilities including field-specific filtering, resu
Skim is a Rust-based terminal fuzzy finder that accepts piped input and provides real-time interactive filtering with configurable matching strategies and ANSI support, fitting your search for a terminal tool to quickly narrow down lists.
Television is a terminal-based search launcher that provides real-time fuzzy matching across multiple data sources, including files, git repositories, environment variables, shell history, and custom user-defined channels. It presents a multi-panel terminal interface where search results, previews, and input are displayed simultaneously, with a frecency-based ranking engine that combines match quality with the frequency and recency of past selections to surface the most relevant entries. The project is built around a declarative, TOML-driven architecture where search channels, previews, and a
Television is a terminal-based fuzzy finder that provides real-time matching across files, shell history, and custom channels with a preview panel, customizable keybindings, and multi-select — directly fitting the search for a tool to quickly filter and select items from lists.
Autojump is a command line productivity tool and shell extension that automates directory navigation. It functions as a shell navigation wrapper that tracks folder access patterns to allow jumping to directories using partial names. The tool utilizes a directory history database and a fuzzy path resolver to match incomplete directory strings to full paths. It weights and ranks these paths based on recency and frequency of use to predict the most likely destination. Beyond shell navigation, the utility includes a terminal file explorer launcher capable of opening the native operating system f
Autojump is a directory navigation tool that uses fuzzy matching to quickly jump to frequently visited directories, but it is not a general-purpose terminal fuzzy finder that filters arbitrary lists via stdin/stdout—it focuses solely on directory paths and lacks the pipe integration and interactive search features this search requires.
RapidFuzz is a C++ accelerated Python library providing high-performance string comparison and similarity calculations. It functions as a fuzzy string matching toolkit used to quantify the difference between text sequences through Levenshtein distance and other edit distance metrics. The library focuses on scalable approximate text matching, enabling the identification and ranking of similar strings within large datasets. It provides specialized utilities for finding the best matches in a collection and generating pairwise similarity matrices. The project covers a broad surface of text proce
RapidFuzz is a Python library for fuzzy string matching and similarity scoring, but it is not a terminal-based interactive tool—it lacks the stdin/stdout pipe integration, customizable keybindings, preview window, and multiple selection mode that define a terminal fuzzy finder.
NvChad is a Neovim configuration framework that provides a pre-configured base setup with a refined interface and custom defaults. It serves as a modular system for managing the editor environment through a curated plugin suite and configuration files written in Lua. The framework features a lazy-loading plugin manager designed to minimize startup time and improve responsiveness by initializing components on demand. It also includes a built-in theme engine with a dedicated picker for switching between different visual styles and aesthetic configurations. The project covers a broad range of d
NvChad is a Neovim configuration framework that can include fuzzy-finding plugins, but it is not itself a standalone terminal fuzzy finder tool that processes stdin/stdout lists.
lunr.js is a JavaScript full-text search library and client-side search engine. It creates in-memory search indexes for fast keyword retrieval and ranked document matching within browser or Node.js environments. The library utilizes a JSON serializable search index, allowing the search structure to be converted to and from JSON for storage and distribution of pre-built search data. This enables search functionality for static websites by indexing content into portable files. The system supports advanced querying capabilities, including fuzzy text matching to account for typos, field-scoped i
lunr.js is a JavaScript full-text search library for in-memory indexing, not a terminal-based interactive tool — it lacks the command-line piping, preview, and keybinding features this search is targeting.
fasd is a frecency-based path navigator and POSIX shell productivity tool designed to accelerate navigation between files and directories. It functions as a command-line wrapper that resolves shorthand queries into absolute paths by ranking results based on how often and how recently they have been accessed. The utility uses fuzzy string matching and case-insensitive lookups to resolve partial directory and file names. It can also import access history from external backends, such as text editors and desktop environments, to refine the accuracy of its ranking database. The tool provides shel
fasd is a frecency-based path jumper that uses fuzzy matching to resolve directory and file names, but it is not a general-purpose terminal fuzzy finder that filters arbitrary lists piped from stdin and lacks features like a preview window or multiple selection mode.
This project is a Vim configuration framework and development environment that transforms the basic text editor into a full-featured integrated development environment. It provides a curated set of settings and a comprehensive plugin suite to support professional software development workflows. The environment includes specialized tools for polyglot code execution and project navigation, allowing users to run source files in multiple languages via single keystrokes and locate files using fuzzy searching. It also integrates version control workflows, enabling the management of Git operations a
This repository is a Vim configuration framework that includes fuzzy searching as one of its features, but it is not itself a standalone terminal fuzzy finder tool — it is a set of editor settings and plugins.
VimR is a native macOS graphical user interface for the Neovim editor. It wraps the Neovim binary within a Swift and AppKit application to provide system-level window management and OS integration. The application includes a project workspace manager for organizing files and windows into distinct contexts, a graphical file browser for navigating directory structures, and a fuzzy file searcher for locating files using approximate string matching. It also features a markdown and HTML previewer with synchronized side-by-side scrolling.
VimR is a native macOS GUI for Neovim that includes a fuzzy file searcher, but it is not a dedicated terminal-based fuzzy finder tool—it is a full graphical editor, lacking the stdin/stdout pipe integration and terminal-centric interaction expected for this category.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| skim-rs/skim | 6.6K | Rust | mit | |
| junegunn/fzf | 81K | Go | MIT | |
| peco/peco |
| 7.9K |
| Go |
| MIT |
| lotabout/skim | 6.9K | Rust | MIT |
| alexpasmantier/television | 4.2K | Rust | mit |
| joelthelion/autojump | 16.9K | Python | NOASSERTION |
| rapidfuzz/rapidfuzz | 3.7K | Python | mit |
| nvchad/nvchad | 28.3K | Lua | GPL-3.0 |
| olivernn/lunr.js | 9.2K | JavaScript | MIT |
| clvv/fasd | 5.9K | Shell | MIT |