30 open-source projects similar to skim-rs/skim, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Skim alternative.
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
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
lf is a terminal-based file manager and TUI file explorer that provides keyboard-driven navigation for browsing and organizing files and directories. It operates as a shell-integrated tool that synchronizes the current working directory with the calling shell and supports vi-style keybindings for filesystem operations. The project distinguishes itself through its ability to render images directly in the terminal via the SIXEL graphics protocol and its shell-driven execution model, which allows users to extend functionality using external shell scripts and commands. It also implements a server
Zed is a terminal-based code editor built in Rust that provides a full-featured editing experience with familiar keybindings, mouse support, and multiple cursors. It runs entirely in the terminal while offering capabilities typically found in graphical editors, including split panes, a command palette, and integrated language server protocol support for real-time diagnostics, completions, go-to-definition, and code actions across multiple languages. The editor distinguishes itself through a plugin system that runs sandboxed TypeScript plugins in a QuickJS runtime, with an asynchronous bridge
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
Cointop is a terminal-based cryptocurrency dashboard that displays real-time market data, prices, and portfolio values in a text-based interface. It aggregates data from multiple cryptocurrency exchange APIs and presents it in an interactive terminal user interface with vim-inspired keyboard shortcuts for navigation and control. The application distinguishes itself by embedding an SSH server that allows remote access to the dashboard from any device, with persistent client configuration tied to individual SSH keys. It includes a fuzzy search system for quickly finding coins by name, desktop n
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
fzf-lua is a fuzzy finder integration for Neovim that utilizes fzf to search files, buffers, and project symbols. It serves as a code navigation framework providing a dynamic result generator that populates search windows using real-time shell commands or custom Lua functions. The project distinguishes itself through specialized integration tools for Git and Language Server Protocols. It includes a Git search interface for navigating commits, branches, stashes, and diffs, alongside an LSP integration tool that bridges language server providers to locate definitions and references across a cod
gh-dash is a terminal user interface (TUI) dashboard and API client for monitoring and managing GitHub pull requests, issues, and notifications. It serves as a repository manager and git workflow tool, allowing users to track project activity and execute development lifecycle tasks directly from the command line. The project distinguishes itself through a highly configurable layout and keybinding system. It uses custom filter templates to define specific subsets of activity and allows users to associate remote repositories with local filesystem directories to automate branch checkouts. The t
Saws is an interactive shell wrapper and resource manager for the AWS CLI. It provides a command-line environment designed to enhance the execution of AWS commands through predictive text, resource suggestions, and improved navigation. The tool implements fuzzy searching and case-insensitive autocomplete to accelerate the discovery and selection of cloud resources. It reduces manual entry via a system of command shortcuts and aliases that map short strings to complex commands. The interface includes local caching of resource data to minimize API requests, persistent command history, and the
Joshuto is a keyboard-driven terminal user interface file manager built with Rust. It functions as a Vim-like file explorer, providing a text-based environment for browsing directories and performing filesystem operations through modal navigation and cursor-based movements. The project distinguishes itself through a side-by-side column view that allows for terminal file previewing, including the rendering of image thumbnails and file contents. It supports a highly customizable workflow where users can define their own keybindings, visual themes, and terminal styles through external configurat
mini.nvim is a comprehensive library of independent modules designed to extend Neovim with a wide array of navigation, user interface, and text manipulation tools. It serves as a modular plugin collection, a UI toolkit for creating custom statuslines and notifications, and a package manager for installing and pinning external plugins from Git. The project provides a specialized fuzzy picker framework for filtering files and symbols, an LSP completion engine with interactive snippet expansion, and a dedicated plugin test framework that uses headless editor instances and remote procedure calls
This project is a framework for building interactive, graphical-style terminal applications. It provides a declarative component model that organizes user interfaces into a tree of nested widgets, each managing its own lifecycle, state, and rendering. By subclassing the base application class, developers can construct complex, keyboard-navigable interfaces that run directly within terminal emulators. The framework distinguishes itself through a reactive architecture and a CSS-based layout engine. It uses a reactive attribute system to automatically track state changes and trigger targeted int
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
jstree is a jQuery tree view plugin used to render interactive hierarchical data structures. It functions as a hierarchical data visualizer and manager, providing tools to display nested relationships through tree layouts. The project features a drag-and-drop tree manager for restructuring hierarchies and an AJAX tree loader for fetching nodes or HTML fragments from remote servers. It includes a tri-state checkbox selector to manage selection states across parent and child branches. The plugin supports various data modeling approaches, including child arrays, parent-id adjacency lists, and t
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Zellij is a terminal multiplexer and workspace manager designed to organize command-line sessions into persistent, reconfigurable layouts. It functions as a terminal plugin framework, allowing users to extend their environment with modular, event-driven components that interact with the host through a structured message-passing protocol. The project distinguishes itself through a layout-engine-based architecture that decouples visual pane arrangements from process execution, enabling automated and repeatable terminal workflows. It includes integrated support for web-based remote access, facil
fzf.vim is a Vim fuzzy finder plugin that integrates the fzf command-line interface into the editor. It serves as a text editor search interface and buffer and file navigator, allowing users to quickly locate files, buffers, and text patterns. The plugin functions as a bridge to the fzf command-line tool, enabling users to search for files, grep code content, and navigate git commits, marks, and tags. It also provides a mechanism to send multiple fuzzy search results directly into the Vim quickfix list for batch editing. Broad capabilities include interactive text completion for paths and wo
Navi is an interactive command-line cheatsheet tool and shell command manager. It provides a fuzzy command browser that allows users to search and execute stored command-line snippets, reducing the need to memorize complex flags and arguments. The tool distinguishes itself through a system for importing and synchronizing command collections from remote Git repositories and third-party providers. It features interactive variable prompts that allow users to fill placeholders in commands via manual keyboard entry or selectable lists, including support for variable dependency mapping where one se
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
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
Nyxt is a keyboard-driven web browser built on a programmable Common Lisp architecture. It is designed for users who require a highly extensible environment where core behaviors and internal functions can be modified during active sessions. By prioritizing keyboard navigation and a command-based interface, the browser facilitates efficient interaction with web content and system functions. The browser distinguishes itself through a non-linear, tree-structured history graph that preserves the context of navigation paths, allowing users to explore past visits without losing their current place.
Fuzzywuzzy is a Python library and text processing utility designed to calculate similarity scores between strings. It functions as a text similarity scoring engine and an approximate string matching tool used to identify the closest textual matches within a list of candidate strings. The library provides a suite of tools for measuring the degree of similarity between pieces of text, accounting for typos and formatting differences. These capabilities include extracting the best match from a candidate list and performing fuzzy string matching through various scoring methods. The toolset cover
toolong is a terminal log viewer and TUI log manager designed for monitoring live log streams and navigating large log files. It functions as a log aggregator and JSONL formatter, capable of merging multiple log files into a single chronological view by automatically detecting timestamps. The application supports the visualization of structured data by pretty printing JSONL files and applying syntax highlighting to common web server log patterns. It handles large-scale data efficiently through virtual-sized scrollable views, allowing users to open compressed logs or files of any size without
vim-rails is a set of editor enhancements for navigating, testing, and managing Ruby on Rails applications within Vim. It provides a project navigator for jumping between related controllers, models, and views, a dedicated test runner for executing specs, and an interface for running framework generators and commands directly from the editor. The plugin enables the extraction of code blocks into separate partials or concerns and automatically replaces the original content with render calls. It also includes a specialized syntax highlighter that applies color coding to framework-specific metho
ctrlp.vim is a fuzzy file navigation tool for the Vim editor. It enables the location and opening of files, buffers, tags, and recently used items through approximate string matching and regular expressions. The project identifies project roots by scanning for version control markers and configuration files. It allows for the creation of new files and their required parent directories directly from the search interface, and can open multiple files simultaneously. Broad capabilities include text editor resource management and workflow automation, such as executing specific commands immediatel
Huh is a Go library for building interactive terminal forms, designed to work with the Bubbletea TUI framework. It provides a complete form-building system with text inputs, selection lists, confirmation prompts, and file pickers, all navigable using only the keyboard without requiring a mouse. The library distinguishes itself through dynamic form adaptation, allowing fields to be shown, hidden, or modified at runtime based on user selections and conditional rules. It includes screen reader support that announces form fields and falls back to text prompts when a visual interface is unavailabl
grv is a terminal-based version control client and interactive Git repository browser. It functions as a terminal user interface for browsing commit history, inspecting code differences, and managing branches and tags within Git repositories. The project distinguishes itself through a graphical commit graph visualizer that renders branching patterns and merge history directly in the terminal. It employs a tiled view layout engine and tabbed workspace management to display multiple repository perspectives simultaneously, supported by real-time filesystem monitoring to update the interface auto