For a command line tool for text selection, the first results are lotabout/skim (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-rs/skim (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) and junegunn/fzf (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/peco and charmbracelet/gum round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
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.
Telescope is a fuzzy search interface for the Neovim text editor, designed to provide rapid access to files, buffers, and project-wide data. It functions as a keyboard-driven command palette that allows users to locate and navigate complex directory structures and codebase content through real-time filtering. The system is built on a modular architecture that utilizes a pluggable interface to fetch data from diverse sources, including file systems, version control repositories, and language server protocols. By separating input collection from data retrieval, it maintains a decoupled state ma
This is a specialized plugin designed specifically for the Neovim text editor rather than a standalone command-line interface tool for general terminal workflows.
bluetui is a text-based user interface for managing Bluetooth devices and adapters. It serves as a terminal application that interfaces with the BlueZ stack to control wireless radio hardware and connection states. The project provides a keyboard-driven controller for scanning for nearby discoverable hardware and establishing secure pairings with new peripherals. It allows for the management of paired devices, including the configuration of trust settings and the assignment of custom nicknames to simplify reconnection. The application includes capabilities for Bluetooth adapter control to to
This is a specialized terminal application for managing Bluetooth devices rather than a general-purpose library or tool for creating interactive fuzzy-searchable selection menus.
Helix is a terminal-based modal text editor designed for efficient code manipulation and navigation. It centers on a selection-first editing model, where operations are performed on active ranges rather than individual cursor positions, allowing for precise control over text and code structures. The editor distinguishes itself through deep integration with structural parsing and language intelligence. By utilizing an incremental parsing library, it builds concrete syntax trees that enable advanced features like structural code navigation, intelligent indentation, and syntax-aware text object
Helix is a terminal-based text editor rather than a general-purpose interactive selection tool, though it shares the terminal interface and command-line utility domain.
fzf-tab is a Zsh plugin that replaces the default tab-completion menu with an interactive fuzzy search interface powered by fzf. It hooks into Zsh's completion system to present completion candidates in a searchable list where users can filter, select, and navigate results by typing partial matches. The plugin distinguishes itself through several integrated capabilities. It supports multi-item selection for batch operations, group-based navigation to switch between completion categories like files and commands, and live previews of each candidate using user-defined commands. The interface can
This is a Zsh-specific plugin that enhances shell tab-completion rather than a standalone CLI tool for building interactive selection menus in arbitrary terminal workflows.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| lotabout/skim | 6.9K | Rust | MIT | |
| skim-rs/skim | 6.6K | Rust | mit | |
| junegunn/fzf |
| 81K |
| Go |
| MIT |
| peco/peco | 7.9K | Go | MIT |
| charmbracelet/gum | 22.8K | Go | mit |
| bombshell-dev/clack | 7.9K | TypeScript | NOASSERTION |
| sboudrias/inquirer.js | 21.6K | TypeScript | MIT |
| lou/multi-select | 1.9K | JavaScript | MIT |
| nvim-telescope/telescope.nvim | 19.1K | Lua | mit |
| pythops/bluetui | 2.6K | Rust | gpl-3.0 |