For a command line tool for text selection, the strongest matches are lotabout/skim (Skim is a high-performance, interactive command-line filter that provides), skim-rs/skim (Skim is a versatile, interactive fuzzy finder that provides) and junegunn/fzf (This is the industry-standard command-line fuzzy finder that provides). peco/peco and charmbracelet/gum round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best command line tools for text selection. Compare top-rated open-source utilities by features and activity to pick the right one for you.
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 high-performance, interactive command-line filter that provides fuzzy searching, multi-selection, and customizable keybindings, making it a direct and comprehensive solution for terminal selection workflows.
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 versatile, interactive fuzzy finder that provides the exact terminal-based selection interface you need, complete with multi-selection, stdin/stdout piping, and advanced fuzzy matching capabilities.
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
This is the industry-standard command-line fuzzy finder that provides interactive selection menus, multi-selection, and deep integration with shell pipelines, perfectly matching the requirements for a terminal-based selection tool.
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 a dedicated command-line tool that provides interactive fuzzy filtering and selection menus, perfectly matching the requirement for a terminal-based workflow utility with stdin/stdout piping and multi-selection support.
Gum is a toolkit for building interactive, visually styled command-line interfaces and prompts directly within shell scripts. It functions as a library of modular components that allow developers to enhance terminal workflows by adding structured layouts, formatted text, and user-input widgets to standard command-line operations. The project distinguishes itself by providing a suite of specialized utilities for common shell tasks, such as fuzzy-matched selection menus, interactive file system navigation, and confirmation dialogs. It translates high-level styling and layout instructions into t
Gum is a versatile CLI toolkit that provides interactive, fuzzy-searchable selection menus and various other TUI components designed specifically for integration into shell scripts via stdin/stdout.
Clack is a Node.js CLI framework and prompt library designed for building stylized, interactive command-line user interfaces. It provides a toolkit for creating terminal applications that collect structured user input and display formatted information. The library includes a set of interactive terminal UI components, such as validated input fields for text and passwords, searchable selection menus with autocomplete, and grouped options for user choice. It also provides mechanisms for process visualization, including loading spinners, progress bars, and sequential task lists to communicate bac
Clack is a library for building interactive terminal interfaces that includes the requested fuzzy-searchable selection menus and input components, though it is designed as a framework for developers rather than a standalone CLI tool for end-users.
Inquirer.js is a command line input framework and prompt library for Node.js applications. It provides a structured set of tools for building interactive terminal interfaces, including menus, checklists, and text inputs, to gather user data and manage complex interactions. The framework allows for the creation of dynamic user experiences through branching prompt logic and the resolution of asynchronous configurations. Users can define custom prompts using a provided API and localize interface text into different languages. The library covers a wide range of input capabilities, including sing
Inquirer.js is a comprehensive framework for building interactive terminal prompts and menus, providing the necessary tools for fuzzy-searchable lists and complex user input flows within Node.js applications.
This project is a reusable web component designed to replace standard multiple-choice form inputs with an interactive interface. It functions as an accessible dropdown menu that simplifies the process of selecting and managing multiple items within browser-based forms and applications. The component utilizes shadow DOM encapsulation to isolate its internal structure from global styles and employs slot-based content projection to allow for custom markup injection. It maintains compatibility with standard HTML form elements through declarative attribute mapping and manages user interactions via
This tool provides an interactive, multi-select interface for terminal workflows, serving as a direct replacement for standard selection prompts with support for piping and custom configuration.