[FEATURE] Add tool alias configuration for modern CLI alternatives
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Many developers prefer modern CLI tools over legacy alternatives:
fdinstead offindrg(ripgrep) instead ofgrepbatinstead ofcatezainstead ofls
Currently, there's no easy way to configure Claude Code to automatically use these alternatives. Users must rely on workarounds like:
- Adding instructions to CLAUDE.md (soft guidance, not enforced)
- Creating custom PreToolUse hooks to block legacy commands
- Using permission deny rules (bypassable with prefix matching)
Additionally, piped commands like find ... | head still trigger permission requests even when both find and head are individually allowlisted, because piped commands are treated as a distinct security category.
Proposed Solution
Add a toolAliases configuration option in settings.json that automatically maps legacy tools to modern alternatives:
{
"toolAliases": {
"find": "fd",
"grep": "rg",
"cat": "bat",
"ls": "eza"
}
}
When Claude generates a command using find, it would automatically be translated to the equivalent fd syntax. This would:
- Be declarative and easy to configure
- Apply globally without per-project setup
- Handle the command translation automatically (not just block and suggest)
Alternative Solutions
- PreToolUse hooks: Works but requires Python scripting and manual setup
- CLAUDE.md instructions: Provides guidance but no enforcement
- Permission deny rules: Can block commands but doesn't suggest alternatives
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
- User adds
"toolAliases": { "find": "fd" }to~/.claude/settings.json - User asks Claude to "find all TypeScript files in src/"
- Claude generates
fd -e ts src/instead offind src/ -name "*.ts" - No permission prompts, no hooks required, just works
Additional Context
Related issues:
- Piped commands permission bug: https://github.com/anthropics/claude-code/issues/1271
- Bash wildcard permission issue: https://github.com/anthropics/claude-code/issues/3428
This would align well with the growing trend of modern CLI tools that are faster, more user-friendly, and respect .gitignore by default.
This issue has 10 comments on GitHub. Read the full discussion on GitHub ↗