# fzf — Blazing Fast Command-Line Fuzzy Finder > fzf is a general-purpose command-line fuzzy finder written in Go. Blazing fast, portable, and composable with any list-producing command. Interactive picker for files, commands, history, git branches, processes, and more. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash # Install brew install fzf # macOS sudo apt install fzf # Debian/Ubuntu scoop install fzf # Windows git clone https://github.com/junegunn/fzf ~/.fzf && ~/.fzf/install ``` Common patterns: ```bash # Interactive file picker vim $(fzf) # Fuzzy history search history | fzf # Git branch picker git checkout $(git branch | fzf) # Kill process by name kill -9 $(ps -ef | fzf | awk "{print \$2}") # Preview files while selecting fzf --preview "bat --color=always {}" ``` Key bindings (after `source ~/.fzf.zsh`): - `Ctrl+T` — paste selected files/dirs - `Ctrl+R` — search history - `Alt+C` — cd into selected directory ## Intro fzf is a general-purpose command-line fuzzy finder written in Go by Junegunn Choi. Portable, dependency-free, and blazingly fast — it uses a smart fuzzy-matching algorithm that ranks results intelligently. Works as an interactive Unix filter for any list-producing command. - **Repo**: https://github.com/junegunn/fzf - **Stars**: 79K+ - **Language**: Go - **License**: MIT ## What fzf Does - **Interactive filter** — pipe any list, select one or many - **Fuzzy matching** — type partial letters to narrow down - **Preview window** — show file contents, git diff, commit message - **Multi-select** — `--multi` for selecting multiple items - **Key bindings** — Ctrl+T (files), Ctrl+R (history), Alt+C (dirs) - **Shell integrations** — bash, zsh, fish auto-completions - **Composable** — works with any `find`, `ls`, `git`, `ps`, `history` ## Architecture Reads stdin, renders interactive TUI via termios. On Enter, writes selection to stdout. Matching algorithm combines substring match, camelCase boundaries, and path components for intelligent ranking. ## Self-Hosting CLI tool, zero runtime deps. ## Key Features - Super fast (Go + optimized matcher) - Fuzzy matching with smart ranking - Preview window - Multi-select mode - Shell key bindings - Works with any input stream - Customizable colors and layout - Can trigger actions on selection ## Comparison | Tool | Matching | Preview | Speed | |---|---|---|---| | fzf | Fuzzy | Yes | Fastest | | skim (sk) | Fuzzy | Yes | Fast (Rust) | | peco | Fuzzy | No | Medium | | fzy | Fuzzy | No | Fast (small) | | percol | Fuzzy | Limited | Python | ## FAQ **Q: Can fzf and ripgrep be used together?** A: A perfect match. `rg --files | fzf` fuzzy-matches over a gitignore-aware file list. **Q: How do I pair it with tmux?** A: fzf supports a `--tmux` option that displays it in a floating pane. **Q: How do I define a preview?** A: `fzf --preview "bat --color=always {}" --preview-window=right:60%` ## Sources & Credits - Docs: https://junegunn.github.io/fzf/ - GitHub: https://github.com/junegunn/fzf - License: MIT --- Source: https://tokrepo.com/en/workflows/fzf-blazing-fast-command-line-fuzzy-finder-85b6bab1 Author: AI Open Source