file-suggestion
Set up fast file suggestions for Claude Code using ripgrep, jq, and fzf. Use this skill when users want to improve file autocomplete performance or add custom file suggestion behavior.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
File Suggestion Setup
This skill helps you configure Claude Code's file suggestion feature with a custom script that uses ripgrep, jq, and fzf for fast fuzzy file matching.
Prerequisites
Install these tools before setup:
# Ubuntu/Debian
sudo apt install ripgrep jq fzf
# macOS
brew install ripgrep jq fzf
# Arch Linux
sudo pacman -S ripgrep jq fzf
Setup Steps
1. Create the Script
Create the file suggestion script at ~/.claude/file-suggestion.sh:
#!/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
2. Make It Executable
chmod +x ~/.claude/file-suggestion.sh
3. Configure Claude Code
Add this to your ~/.claude/settings.json:
{
"fileSuggestion": {
"type": "command",
"command": "~/.claude/file-suggestion.sh"
}
}
How It Works
The script:
-
Receives JSON input with a
queryfield from Claude Code -
Uses ripgrep (
rg --files) to list files fast, respecting.gitignore -
Follows symlinks with
--followflag -
Includes hidden files with
--hiddenflag -
Fuzzy filters results using
fzf --filter - Returns top 15 matches sorted by relevance
Customization
Include Gitignored Paths
Uncomment and customize the additional paths section:
# Include .notes directory even if gitignored
[ -e .notes ] && rg --files --follow --hidden --no-ignore-vcs .notes 2>/dev/null
# Include vendor directory
[ -e vendor ] && rg --files --follow --hidden --no-ignore-vcs vendor 2>/dev/null
Exclude Patterns
Add ripgrep glob patterns to exclude files:
rg --files --follow --hidden \
--glob '!*.min.js' \
--glob '!*.map' \
--glob '!node_modules' \
. 2>/dev/null
Change Result Limit
Modify the head -15 to return more or fewer results:
# Return top 25 matches
... | head -25
Troubleshooting
Script Not Found
Ensure the path in settings.json matches your script location and uses ~ or absolute path.
No Results
Check that:
- ripgrep is installed:
which rg - fzf is installed:
which fzf - jq is installed:
which jq - Script is executable:
ls -la ~/.claude/file-suggestion.sh
Slow Performance
If you have a large repo:
- Ensure
.gitignoreexcludesnode_modules,dist, etc. - Add explicit
--glob '!pattern'exclusions for large directories
Template Script
A ready-to-use template is available at:
${CLAUDE_PLUGIN_ROOT}/skills/file-suggestion/scripts/file-suggestion.sh
Copy it to your ~/.claude/ directory and customize as needed.
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!