Enhancement: Add Find() as a first-class built-in tool
When Claude Code needs to find files (e.g., searching for files by name pattern, listing directories, or locating files matching criteria), it falls back to the Bash tool with find commands. These commands often trigger permission prompts because:
findis not a dedicated tool — it runs via Bash, which is subject to allow-list pattern matchingfindcommands are often complex (piped, with-exec, etc.) making them hard to whitelist safely- Users end up approving harmless
findoperations repeatedly
Proposal: Add a Find() tool as a first-class citizen alongside Glob(), Grep(), and Read(). It would:
- Accept a root path and filter criteria (name pattern, type, max depth, etc.)
- Return matching file paths (similar to Glob but with richer filtering like
findsupports) - Be auto-allowed by default (read-only, safe operation)
- Eliminate the need for Bash-based
findcommands that trigger permission prompts
Current workaround: Users can whitelist Bash(find *) but this is overly broad and doesn't cover piped find commands. The Glob tool covers simple name-pattern matching but lacks find's filtering capabilities (modification time, file size, depth control, type filtering beyond file/directory).
Impact: Reduces unnecessary permission prompts and improves the developer experience for common file-discovery operations.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗