fzf: Interactive Fuzzy Finder
Always invoke fzf skill for interactive fuzzy selection - do not execute bash commands directly.
Use fzf for interactive fuzzy selection and filtering of any command-line list.
Default Strategy
Invoke fzf skill for interactive fuzzy selection from any list with preview capabilities. Use when choosing from search results, files, processes, or any command output.
Common workflow: Discovery skill (fd, ripgrep, jq, yq) → fzf skill → other skills (bat, xargs) for interactive selection and action.
Key Options
Display Modes
--height N[%] set height (percent or exact lines)
--tmux [POS][SIZE][,border] tmux popup mode
--layout default|reverse|reverse-list layout direction
--border [rounded|sharp|thin] add border
--style default|full|minimal UI preset
Search & Matching
-e/--exact exact matching instead of fuzzy
--scheme default|path|history input type optimization
--delimiter STR custom field delimiter
--nth N.. search specific fields only
Preview Window
--preview "CMD {}" external command preview
--preview-window POSITION[SIZE][,border] preview configuration
--preview-label TEXT custom preview label
Selection Options
-m/--multi multi-select mode (TAB to mark)
--bind KEY:ACTION custom key bindings
--prompt "TEXT" custom prompt string
--header "TEXT" custom header text
Performance Options
--tac reverse input order (top-down)
--with-nth N.. display specific fields
--ansi parse ANSI color codes
When to Use
- File Selection: Interactive file browsing with preview
- Command History: Search and reuse previous commands
- Process Management: Select and manage running processes
- Git Integration: Browse commits, branches, files
- Multi-Select Operations: Batch processing of selected items
Common Workflows
fd | fzf → bat: Find files, select, view with syntax highlighting
ripgrep | fzf → vim: Search content, select matches, edit files
jq/yq | fzf → bat: Extract data, select entries, view details
git log | fzf → show: Browse commits, select, view changes
ps | fzf → kill: List processes, select, terminate
find | fzf -m → xargs: Multiple selection for batch operations
Core Principles
- Interactive Filtering: Real-time fuzzy matching as you type
- Universal Input: Works with any list from STDIN or file system
- Extensible: Customizable through bindings and preview commands
- Performance: Optimized to handle millions of items instantly
Detailed Reference
For comprehensive search patterns, key bindings, preview configurations, and integration examples, load fzf guide when needing:
- Custom key bindings and actions
- Advanced preview window configuration
- Multi-select workflows
- Tmux integration
- Shell setup functions
The guide includes:
- Basic usage and display modes
- Search syntax and matching patterns
- Multi-select operations and key bindings
- Preview window configuration
- Integration examples (git, processes, file systems)
- Performance optimization and troubleshooting
- Shell integration setup and custom functions
Skill Combinations
For Discovery Phase
- fd → fzf: Interactive file selection from search results
- ripgrep → fzf: Interactive selection from search matches
- jq/yq → fzf: Interactive selection from extracted data
- git log/branch → fzf: Interactive git history browsing
For Analysis Phase
- any_command → fzf → bat: Select items and preview with syntax highlighting
- fd → fzf --preview="bat {}": File browser with syntax preview
- ripgrep → fzf --preview="bat {1} +{2}": Search results with file preview
For Refactoring Phase
- any_command → fzf -m: Batch process multiple selected items
- find | fzf -m | xargs: Classic multi-select pattern
- ps | fzf -m | xargs kill: Multi-process management
Integration Examples
# Interactive code search and edit
rg "pattern" | fzf --preview="bat --color=always --highlight-line {2} {1}" | awk '{print $1}' | xargs vim
# Interactive dependency management
jq -r '.dependencies | keys[]' package.json | fzf --multi | xargs npm uninstall
1---2name: fuzzy-selecting3description: Provides interactive fuzzy finder for selecting items from any list with preview capabilities. Use this skill when choosing from search results, files, processes, or any command output4---5
6# fzf: Interactive Fuzzy Finder
7
8**Always invoke fzf skill for interactive fuzzy selection - do not execute bash commands directly.**
9
10Use fzf for interactive fuzzy selection and filtering of any command-line list.
11
12## Default Strategy
13
14**Invoke fzf skill** for interactive fuzzy selection from any list with preview capabilities. Use when choosing from search results, files, processes, or any command output.
15
16Common workflow: Discovery skill (fd, ripgrep, jq, yq) → fzf skill → other skills (bat, xargs) for interactive selection and action.
17
18## Key Options
19
20### Display Modes
21- `--height N[%]` set height (percent or exact lines)
22- `--tmux [POS][SIZE][,border]` tmux popup mode
23- `--layout default|reverse|reverse-list` layout direction
24- `--border [rounded|sharp|thin]` add border
25- `--style default|full|minimal` UI preset
26
27### Search & Matching
28- `-e/--exact` exact matching instead of fuzzy
29- `--scheme default|path|history` input type optimization
30- `--delimiter STR` custom field delimiter
31- `--nth N..` search specific fields only
32
33### Preview Window
34- `--preview "CMD {}"` external command preview
35- `--preview-window POSITION[SIZE][,border]` preview configuration
36- `--preview-label TEXT` custom preview label
37
38### Selection Options
39- `-m/--multi` multi-select mode (TAB to mark)
40- `--bind KEY:ACTION` custom key bindings
41- `--prompt "TEXT"` custom prompt string
42- `--header "TEXT"` custom header text
43
44### Performance Options
45- `--tac` reverse input order (top-down)
46- `--with-nth N..` display specific fields
47- `--ansi` parse ANSI color codes
48
49## When to Use
50
51- **File Selection**: Interactive file browsing with preview
52- **Command History**: Search and reuse previous commands
53- **Process Management**: Select and manage running processes
54- **Git Integration**: Browse commits, branches, files
55- **Multi-Select Operations**: Batch processing of selected items
56
57### Common Workflows
58- `fd | fzf → bat`: Find files, select, view with syntax highlighting
59- `ripgrep | fzf → vim`: Search content, select matches, edit files
60- `jq/yq | fzf → bat`: Extract data, select entries, view details
61- `git log | fzf → show`: Browse commits, select, view changes
62- `ps | fzf → kill`: List processes, select, terminate
63- `find | fzf -m → xargs`: Multiple selection for batch operations
64
65## Core Principles
66
671. **Interactive Filtering**: Real-time fuzzy matching as you type
682. **Universal Input**: Works with any list from STDIN or file system
693. **Extensible**: Customizable through bindings and preview commands
704. **Performance**: Optimized to handle millions of items instantly
71
72## Detailed Reference
73
74For comprehensive search patterns, key bindings, preview configurations, and integration examples, load [fzf guide](./reference/fzf-guide.md) when needing:
75- Custom key bindings and actions
76- Advanced preview window configuration
77- Multi-select workflows
78- Tmux integration
79- Shell setup functions
80
81The guide includes:
82- Basic usage and display modes
83- Search syntax and matching patterns
84- Multi-select operations and key bindings
85- Preview window configuration
86- Integration examples (git, processes, file systems)
87- Performance optimization and troubleshooting
88- Shell integration setup and custom functions
89
90## Skill Combinations
91
92### For Discovery Phase
93- **fd → fzf**: Interactive file selection from search results
94- **ripgrep → fzf**: Interactive selection from search matches
95- **jq/yq → fzf**: Interactive selection from extracted data
96- **git log/branch → fzf**: Interactive git history browsing
97
98### For Analysis Phase
99- **any_command → fzf → bat**: Select items and preview with syntax highlighting
100- **fd → fzf --preview="bat {}"**: File browser with syntax preview
101- **ripgrep → fzf --preview="bat {1} +{2}"**: Search results with file preview
102
103### For Refactoring Phase
104- **any_command → fzf -m**: Batch process multiple selected items
105- **find | fzf -m | xargs**: Classic multi-select pattern
106- **ps | fzf -m | xargs kill**: Multi-process management
107
108### Integration Examples
109```bash
110# Interactive code search and edit
111rg "pattern" | fzf --preview="bat --color=always --highlight-line {2} {1}" | awk '{print $1}' | xargs vim
112
113# Interactive dependency management
114jq -r '.dependencies | keys[]' package.json | fzf --multi | xargs npm uninstall