claude-codeclifzfproductivitytutorial
Quick Guide to Make Claude Code File Suggestion Faster
•Rafael Thayto

The default @ file matcher in Claude Code was always disappointing me, being used to superior options like fzf.
It was also not suggesting files from gitignored or symlinked folders, which was annoying as hell.
But Anthropic recently allowed us to customize it with File Suggestion settings.
And oh boy! Proper fuzzy matching via fzf is so much better than what was there by default!
# Prerequisites
You'll need these CLI tools installed:
- rg (ripgrep) - for fast file listing with symlink support
- fzf - for fuzzy matching
- jq - for parsing JSON input
# Setup
# 1. Configure Claude Code Settings
Add this to your ~/.claude/settings.json:
"fileSuggestion": {
"type": "command",
"command": "~/.claude/file-suggestion.sh"
}
# 2. Create the File Suggestion Script
Create ~/.claude/file-suggestion.sh with the following content:
#!/bin/bash
# Custom file suggestion script for Claude Code
# Uses rg + fzf for fuzzy matching and symlink support
# Parse JSON input to get query
QUERY=$(jq -r '.query // ""')
# Use project dir from env, fallback to pwd
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
# cd into project dir so rg outputs relative paths
cd "$PROJECT_DIR" || exit 1
{
# Main search - respects .gitignore, includes hidden files, follows symlinks
rg --files --follow --hidden . 2>/dev/null
# Additional paths - include even if gitignored (uncomment and customize)
# [ -e .notes ] && rg --files --follow --hidden --no-ignore-vcs .notes 2>/dev/null
} | sort -u | fzf --filter "$QUERY" | head -15
# 3. Make it Executable
Don't forget to make the script executable:
chmod +x ~/.claude/file-suggestion.sh
# 4. Restart Claude Code
Restart Claude Code and enjoy!
Be happy :)