skills/development/fzf/SKILL.md
Command-line fuzzy finder for interactive filtering and selection - integrates with shell, vim, and other tools.
npx skillsauth add thimslugga/agent-skills fzf-fuzzy-finderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interactive command-line fuzzy finder with powerful integration capabilities.
# Pipe list to fzf
ls | fzf
# Select file
find . -type f | fzf
# Multi-select (Tab to select, Shift+Tab to deselect)
ls | fzf -m
# Preview files while selecting
ls | fzf --preview 'cat {}'
# With bat for syntax highlighting
ls | fzf --preview 'bat --color=always {}'
# After installing, add to ~/.bashrc or ~/.zshrc:
# source /path/to/fzf/shell/completion.bash
# source /path/to/fzf/shell/key-bindings.bash
# Key bindings:
# Ctrl+R - Command history
# Ctrl+T - File search
# Alt+C - Directory navigation
# Use in command line
vim **<TAB> # File completion
cd **<TAB> # Directory completion
kill -9 **<TAB> # Process completion
# Open file in vim
vim $(fzf)
# Edit with preview
vim $(fzf --preview 'bat --color=always --line-range :500 {}')
# Select and copy
fzf | xargs -I {} cp {} /destination/
# Delete selected files
fzf -m | xargs rm
# CD to selected directory
cd $(find . -type d | fzf)
# Alias for quick nav
alias cdf='cd $(find . -type d | fzf)'
# Or use Alt+C keybinding
# Checkout branch
git branch | fzf | xargs git checkout
# Show commit
git log --oneline | fzf | awk '{print $1}' | xargs git show
# Add files interactively
git status -s | fzf -m | awk '{print $2}' | xargs git add
# Fuzzy git log browser
alias gll='git log --oneline | fzf --preview "git show {1}"'
# Kill process
ps aux | fzf | awk '{print $2}' | xargs kill
# Kill multiple processes
ps aux | fzf -m | awk '{print $2}' | xargs kill -9
# Preview on the right
fzf --preview 'cat {}'
# Preview position and size
fzf --preview 'cat {}' --preview-window=right:50%
# Preview with bat
fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
# Toggle preview with Ctrl+/
fzf --preview 'cat {}' --bind 'ctrl-/:toggle-preview'
# Preview directory contents
find . -type d | fzf --preview 'ls -la {}'
# Execute action on selection
fzf --bind 'enter:execute(vim {})'
# Multiple bindings
fzf --bind 'ctrl-e:execute(vim {})' \
--bind 'ctrl-o:execute(open {})'
# Reload on key press
fzf --bind 'ctrl-r:reload(find . -type f)'
# Accept non-matching input
fzf --print0 --bind 'enter:print-query'
# Case-insensitive (default)
fzf -i
# Case-sensitive
fzf +i
# Exact match
fzf -e
# Inverse match (exclude)
fzf --query='!pattern'
# OR operator
fzf --query='py$ | js$' # .py or .js files
# AND operator
fzf --query='test .py' # Contains both 'test' and '.py'
# Search content and open in vim
rg --line-number . | fzf | awk -F: '{print "+"$2, $1}' | xargs vim
# Search and preview matches
rg --line-number . | fzf --delimiter : \
--preview 'bat --color=always {1} --highlight-line {2}' \
--preview-window +{2}-/2
# Find and preview files
fd --type f | fzf --preview 'bat --color=always {}'
# Find files modified today
fd --changed-within 1d | fzf --preview 'bat {}'
# Select and enter container
docker ps | fzf | awk '{print $1}' | xargs -I {} docker exec -it {} bash
# Remove selected images
docker images | fzf -m | awk '{print $3}' | xargs docker rmi
# View logs
docker ps | fzf | awk '{print $1}' | xargs docker logs -f
# Select pod
kubectl get pods | fzf | awk '{print $1}' | xargs kubectl describe pod
# Get logs
kubectl get pods | fzf | awk '{print $1}' | xargs kubectl logs -f
# Delete pods
kubectl get pods | fzf -m | awk '{print $1}' | xargs kubectl delete pod
Add to your shell config:
# Fuzzy file search and open in vim
alias fv='vim $(fzf --preview "bat --color=always --style=numbers {}")'
# Fuzzy directory change
alias fcd='cd $(find . -type d | fzf)'
# Fuzzy git checkout
alias gco='git branch | fzf | xargs git checkout'
# Fuzzy process kill
alias fkill='ps aux | fzf | awk "{print \$2}" | xargs kill -9'
# Fuzzy history search (Ctrl+R is built-in)
alias fh='history | fzf | awk "{print \$2}" | xargs -I {} sh -c "{}"'
# Find and edit
alias fe='fd --type f | fzf --preview "bat --color=always --style=numbers {}" | xargs -r $EDITOR'
# Default options
export FZF_DEFAULT_OPTS='
--height 40%
--layout=reverse
--border
--inline-info
--preview "bat --style=numbers --color=always --line-range :500 {}"
'
# Use fd instead of find
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
# For Ctrl+T
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
# For Alt+C
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
export FZF_DEFAULT_OPTS='
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc
--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8
'
# Smart file browser with preview
fzf \
--preview 'bat --color=always --style=numbers --line-range=:500 {}' \
--preview-window='right:60%:wrap' \
--bind 'enter:execute(vim {})' \
--bind 'ctrl-y:execute-silent(echo {} | pbcopy)+abort' \
--header 'Enter: edit | Ctrl+Y: copy path'
# Search in files and navigate to line
rg --line-number --no-heading . | \
fzf --delimiter=: \
--preview 'bat --color=always --style=numbers --highlight-line {2} {1}' \
--preview-window='+{2}-/2' \
--bind 'enter:execute(vim {1} +{2})'
%:wrap'
--bind 'enter:execute(vim {})'
--bind 'ctrl-y:execute-silent(echo {} | pbcopy)+abort'
--header 'Enter: edit | Ctrl+Y: copy path'
### Multi-purpose search
```bash
# Search in files and navigate to line
rg --line-number --no-heading . | \
fzf --delimiter=: \
--preview 'bat --color=always --style=numbers --highlight-line {2} {1}' \
--preview-window='+{2}-/2' \
--bind 'enter:execute(vim {1} +{2})'
#!/bin/bash
# docker-fzf.sh
container=$(docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" | fzf --header-lines=1 | awk '{print $1}')
if [ -n "$container" ]; then
docker exec -it "$container" bash
fi
--preview for visual contextbat, rg, fd for powerful workflows? in fzf to see keybindingsTab for multi-selectCtrl+/ to toggle preview (if bound)Ctrl+K / Ctrl+J to navigate' for exact match! to exclude| for OR, space for ANDFZF_DEFAULT_OPTS for persistent config# For large file lists, use fd or rg
export FZF_DEFAULT_COMMAND='fd --type f'
# Limit depth for faster results
export FZF_DEFAULT_COMMAND='fd --type f --max-depth 5'
# Use parallel preview
fzf --preview 'bat {}' --preview-window 'hidden'
GitHub: https://github.com/junegunn/fzf Wiki: https://github.com/junegunn/fzf/wiki Examples: https://github.com/junegunn/fzf/wiki/examples
development
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
development
Documentation templates and structure guidelines. README, API docs, code comments, and AI-friendly documentation.
development
Use when the task involves reading, creating, or editing `.docx` documents, especially when formatting or layout fidelity matters; prefer `python-docx` plus the bundled `scripts/render_docx.py` for visual checks.
documentation
Create a README.md file for the project