# junegunn/fzf

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/junegunn-fzf).**

77,987 stars · 2,694 forks · Go · mit

## Links

- GitHub: https://github.com/junegunn/fzf
- Homepage: https://junegunn.github.io/fzf/
- awesome-repositories: https://awesome-repositories.com/repository/junegunn-fzf.md

## Topics

`bash` `cli` `fish` `fzf` `go` `neovim` `tmux` `unix` `vim` `zsh`

## Description

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 asynchronous data transformation and dynamic list reloading, enabling users to trigger shell commands or update content based on user interactions without blocking the interface. The system maintains selection identity across these updates, providing a consistent experience when managing large or streaming datasets.

The project offers a comprehensive suite of features for terminal user interface development, including multi-threaded search performance, configurable preview windows, and support for various terminal multiplexers. It provides extensive customization options for visual layout, key bindings, and search logic, allowing developers to build custom selection interfaces or automate complex shell tasks.

The tool is configured through environment variables and configuration files, supporting inline comments for maintainability. It is designed to be installed as a standalone command-line utility, with library integration options available for embedding its filtering capabilities into other applications.

## Tags

### Data & Databases

- [Fuzzy Search Engines](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/fuzzy-search-engines.md) — Filters candidate lists instantly using flexible fuzzy, exact, or prefix matching algorithms. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Matching Algorithms](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/matching-algorithms.md) — Applies versatile matching strategies, including fuzzy, exact, and inverse logic, to refine search results. ([source](https://junegunn.github.io/fzf/search-syntax/))
- [Multi-Threaded Search Engines](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/multi-threaded-search-engines.md) — Maintains high performance during complex filtering by distributing search tasks across multiple CPU cores.
- [Pipe-based Data Collectors](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/pipe-based-data-collectors.md) — Captures data from standard input streams to allow interactive selection and processing of piped content. ([source](https://junegunn.github.io/fzf/tips/using-fzf-in-your-program/))
- [Real-time Stream Monitors](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/real-time-stream-monitors.md) — Filters live data streams in real-time to provide an interactive interface for monitoring and selecting output. ([source](https://junegunn.github.io/fzf/releases/0.53.0/))
- [Fuzzy Filtering Engines](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/filtering-deduplication/fuzzy-filtering-engines.md) — High-performance filtering logic manages candidate lists to execute complex matching syntax on incoming data streams.
- [Log Stream Buffers](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/log-stream-buffers.md) — Memory-constrained buffers drop older entries to allow continuous monitoring of live log streams. ([source](https://junegunn.github.io/fzf/tips/browsing-log-streams/))
- [Boundary Matching Engines](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/boundary-matching-engines.md) — Quote-wrapped syntax enforces strict word-boundary matching to isolate specific string occurrences. ([source](https://junegunn.github.io/fzf/releases/0.55.0/))
- [Relevance Ranking Engines](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/relevance-ranking-engines.md) — Ranking algorithms prioritize file name matches within paths to increase the accuracy of search results. ([source](https://junegunn.github.io/fzf/releases/0.59.0/))
- [Search Result Optimizations](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/matching-ranking-logic/search-result-optimizations.md) — Precise query syntax and word-based filtering enhance the speed and relevance of search results. ([source](https://junegunn.github.io/fzf/search-syntax/))
- [Logical Search Operators](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/query-interfaces-dsls/logical-search-operators.md) — Executes logical OR operations by combining search terms with a pipe character to match any of the specified alternatives. ([source](https://junegunn.github.io/fzf/search-syntax/))
- [Multi-term Search Processors](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/query-interfaces-dsls/multi-term-search-processors.md) — Space-delimited search terms are evaluated as distinct filters to refine results from complex input lists. ([source](https://junegunn.github.io/fzf/search-syntax/))
- [Search Syntax Extensions](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-information-retrieval/query-interfaces-dsls/search-syntax-extensions.md) — Defines custom search and transformation actions to modify input queries dynamically during the filtering process. ([source](https://junegunn.github.io/fzf/releases/0.59.0/))

### Development Tools & Productivity

- [Interactive Filters](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/shell-productivity-enhancements/interactive-filters.md) — Delivers an interactive interface for rapid searching and filtering of large datasets directly within the terminal.
- [Terminal Workflow Automations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/shell-productivity-enhancements/terminal-workflow-automations.md) — Accelerates terminal workflows by integrating fuzzy completion and dynamic previews into standard command-line tasks.
- [Interactive Command-Line Filters](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-productivity/command-line-utilities/interactive-command-line-filters.md) — Enables real-time filtering, selection, and transformation of standard input streams via an interactive prompt.
- [Shell Productivity Tools](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-utilities/interactive-navigation-helpers/shell-productivity-tools.md) — Boosts shell efficiency through intuitive fuzzy completion and streamlined history navigation.
- [Stream Processing Utilities](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-productivity/command-line-utilities/stream-processing-utilities.md) — Processes and filters data streams in real-time for seamless integration into command-line pipelines.
- [Shell Productivity Enhancements](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/shell-productivity-enhancements.md) — Improves command discovery and navigation by embedding fuzzy completion and preview features into the shell. ([source](https://junegunn.github.io/fzf/releases/0.68.0/))
- [Dynamic Content Refreshers](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/interactive-cli-tooling/dynamic-content-refreshers.md) — Updates interface content dynamically by binding shell commands to user interactions for real-time filtering. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Fuzzy Shell Completions](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration/fuzzy-shell-completions.md) — Provides fuzzy-matched completion for files, directories, and environment variables through native shell integration. ([source](https://junegunn.github.io/fzf/shell-integration/))
- [Shell History Managers](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-utilities/shell-configuration-customization/shell-history-managers.md) — Upgrades shell history management by adding interactive fuzzy filtering and multi-select capabilities. ([source](https://junegunn.github.io/fzf/releases/0.71.0/))
- [Terminal Multiplexer Integrations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration/terminal-multiplexer-integrations.md) — Native integration allows selection interfaces to appear directly within terminal multiplexer panes or popups. ([source](https://junegunn.github.io/fzf/releases/0.53.0/))
- [Version Control Completions](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration/version-control-completions.md) — Dynamic completion of version control objects like branches and commits streamlines navigation within repository workflows. ([source](https://junegunn.github.io/fzf/shell-integration/))
- [Shell Key Bindings](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-utilities/interactive-navigation-helpers/shell-key-bindings.md) — Configurable shortcuts inject selected history, file paths, or directory names directly into the active shell prompt. ([source](https://junegunn.github.io/fzf/shell-integration/))
- [Selection Content Previews](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-productivity/selection-content-previews.md) — Customizable preview commands display file metadata or content in real-time as items are highlighted. ([source](https://junegunn.github.io/fzf/getting-started/))

### Miscellaneous Curated Lists

- [Interactive Data Explorers](https://awesome-repositories.com/f/miscellaneous-curated-lists/industry-domain-knowledge/domain-specific-information/interactive-data-explorers.md) — Facilitates real-time exploration and navigation of data streams through an interactive command-line interface.

### User Interface & Experience

- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — Renders interactive, text-based components and dynamic layouts to enhance terminal user experiences.
- [Item Navigation and Selection](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/item-navigation-and-selection.md) — Supports keyboard and mouse-based navigation, selection, and multi-select operations within terminal interfaces. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Preview Panes](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/layout-structural-components/preview-panes.md) — Displays content previews for selected items by executing shell commands and rendering output in a secondary pane. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Terminal-Agnostic Renderers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/rendering-output-engines/terminal-agnostic-renderers.md) — Escape sequences manage terminal output to ensure visual layouts remain consistent across diverse terminal emulators.
- [Column Pinning](https://awesome-repositories.com/f/user-interface-experience/data-visualization-tools/data-tables/column-pinning.md) — Fixed column positioning maintains visibility of essential data fields during horizontal navigation. ([source](https://junegunn.github.io/fzf/releases/0.67.0/))
- [Visual Style Presets](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/theme-systems/visual-style-presets.md) — Activates predefined color schemes to instantly modify interface elements like borders, highlights, and information positioning. ([source](https://junegunn.github.io/fzf/releases/0.58.0/))
- [Interface Display Modes](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/layout-structural-components/interface-display-modes.md) — Adjusts visual geometry to fullscreen, height-constrained, or popup window modes for seamless integration into terminal environments. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Terminal Output Formatters](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/rendering-output-engines/terminal-output-formatters.md) — Multi-line formatting options improve readability through custom markers and spacing between entries. ([source](https://junegunn.github.io/fzf/tips/processing-multi-line-items/))
- [Inline Image Renderers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/terminal-ui-enhancements/inline-image-renderers.md) — Specialized protocols render graphical images directly within the preview window. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Interface Appearance Customization](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/visual-styling-presentation/interface-appearance-customization.md) — Style presets and color configurations allow full customization of the interface appearance. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))
- [Loading Indicators](https://awesome-repositories.com/f/user-interface-experience/ui-components/feedback-overlay-components/loading-indicators.md) — Visual status indicators appear within the interface to signal ongoing background processing tasks. ([source](https://junegunn.github.io/fzf/releases/0.67.0/))

### Software Engineering & Architecture

- [Asynchronous Data Processing](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/reactive-messaging/reactive-event-driven-systems/asynchronous-data-processing.md) — Offloads command execution to background processes to keep the interface responsive during data filtering.
- [Event-Driven Action Bindings](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/reactive-messaging/reactive-event-driven-systems/event-driven-action-bindings.md) — Triggers custom shell commands or internal actions in response to user input and query changes.
- [Parallel Processing](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/parallel-processing.md) — Work queues distribute search tasks across multiple CPU cores to maximize computational throughput. ([source](https://junegunn.github.io/fzf/releases/0.71.0/))
- [Rendering Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/frontend-rendering-loading/rendering-optimizations.md) — Memory-efficient handling of large datasets and log streams ensures smooth, responsive rendering during high-volume data updates. ([source](https://junegunn.github.io/fzf/releases/0.54.0/))

### Web Development

- [Selection Persistence Managers](https://awesome-repositories.com/f/web-development/frontend-development-tools/state-data-management/selection-persistence-managers.md) — Identity-based tracking preserves user selections even when the underlying data source is refreshed or reloaded. ([source](https://junegunn.github.io/fzf/releases/0.71.0/))

### Operating Systems & Systems Programming

- [Unix Socket Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/inter-process-communication/unix-socket-interfaces.md) — Exposes a local domain socket interface for external processes to manipulate state and retrieve selections programmatically.
- [Exclusion Patterns](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-systems/exclusion-patterns.md) — Respects ignore patterns during file system traversal by integrating external search tools as the primary source for file lists. ([source](https://cdn.jsdelivr.net/gh/junegunn/fzf@master/README.md))

### Programming Languages & Runtimes

- [Asynchronous Element Transformations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-processing/asynchronous-element-transformations.md) — Background command execution prevents interface blocking during intensive data retrieval operations. ([source](https://junegunn.github.io/fzf/releases/0.63.0/))
