Enhancement: Add Find() as a first-class built-in tool

Resolved 💬 2 comments Opened Mar 16, 2026 by gsmethells Closed Apr 13, 2026

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:

  1. find is not a dedicated tool — it runs via Bash, which is subject to allow-list pattern matching
  2. find commands are often complex (piped, with -exec, etc.) making them hard to whitelist safely
  3. Users end up approving harmless find operations 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 find supports)
  • Be auto-allowed by default (read-only, safe operation)
  • Eliminate the need for Bash-based find commands 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗