Skip to content
CAI
Software that uses CAICheck a score

sharkdp/fd

70.9

Strong · 26 September 2026

4.6k

lines of production code

Rust

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a high-performance, parallel file finder implemented in Rust, designed as a fast and user-friendly alternative to traditional shell-based search tools. It provides robust file discovery capabilities with advanced filtering options for size, time, and ownership, alongside support for regex pattern matching and logical conjunctions. The tool also enables direct command execution on search results through batch or individual processing modes. To ensure reliability and ease of use, it includes comprehensive shell completions, formal documentation, and a modernized testing infrastructure.

Features

Add --exec and --exec-batch command execution

Users can now execute external commands on search results using the new --exec (one-by-one) and --exec-batch (batched) flags. This feature introduces a new execution module that handles command generation, output buffering, and exit code aggregation, allowing users to pipe or process found files directly through other tools.

src/exec · high confidence

Add native Zsh completion and fix shell completions for fd and fdfind

Users of Zsh now receive native tab-completion support for the \fd\ command, including intelligent filtering for file types (such as block and character devices), options like \--hyperlink\ and \--prune\, and argument grouping. The \fdfind\ alias is also fully supported in Zsh, Bash, and Fish, with specific fixes applied to ensure correct completion behavior for flags like \--version\ and proper alias resolution in Debian packages.

contrib · high confidence

Add official man page and release documentation

The documentation directory now includes a formal man page (fd.1) covering command-line options, a release checklist to guide maintainers through version bumps and publishing, and a script to generate an animated screencast for the README. A .gitattributes file is also added to mark the new SVG logo as vendored.

doc · high confidence

Automated release and packaging scripts

New shell scripts have been added to automate the release process: create-archive.sh builds distribution archives (tar.gz/zip) for various targets, create-deb.sh generates Debian packages with correct architecture detection, conflict handling, and shell completion symlinks, version-bump.sh automates version updates in Cargo.toml and documentation, and update-help.awk regenerates CLI help text in documentation.

scripts · high confidence

Initial project scaffolding and documentation

This change establishes the foundational structure for the fd project by adding the initial source code, build configuration (Makefile, Cross.toml, rustfmt.toml), and comprehensive documentation (README, CHANGELOG, CONTRIBUTING, SECURITY). It also sets the licensing terms under MIT/Apache-2.0 and configures build artifacts (target, autocomplete, package) to be ignored by Git.

(repo-wide) · high confidence

Initial release of fd (v8.11.0) in Rust

The tool has been rewritten in Rust, replacing the previous shell-script implementation. This change introduces a new CLI structure using clap, a parallel directory walker, and support for features such as colorized output, hyperlinks, and custom format templates.

src · high confidence

New file filtering capabilities for size, time, and ownership

The \src/filter\ module has been introduced to centralize and expand file filtering logic. Users can now filter results by file size using the \--size\ flag, supporting both SI (e.g., \+1k\) and binary (e.g., \+1ki\) prefixes for minimum, maximum, and exact matches. Time-based filtering via \--changed-within\ and \--changed-before\ has been refactored to use the \jiff\ library, enabling more robust parsing of relative spans, absolute dates, and UTC timestamps (prefixed with \@\). On Unix systems, a new \--owner\ filter allows matching files by user or group ID, supporting negation with the \!\ prefix (e.g., \!root\) and handling both numeric IDs and names.

src/filter · high confidence

Test coverage

Integration tests for the \--and\ flag and pattern matching; New Rust-based integration test environment.

Dependencies

Update Rust toolchain and dependency versions for fd 10.5.0

The fd-find project has updated its minimum supported Rust version (MSRV) to 1.90.0 and upgraded the Rust edition to 2024. Several core dependencies have been bumped to their latest versions, including clap to 4.6.1, regex to 1.12.2, and nix to 0.31.1, while replacing the chrono library with jiff for time handling. The Cargo.lock file has been regenerated to reflect these changes, ensuring consistent builds across the updated dependency tree.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 71.

Lenses

  • Code Health 91
  • Architecture 99
  • Maturity 55
  • Readiness 79
  • Security 91

Changes since last survey

  • 300 commits — 255 feature/other, 45 fixes

By area

  • (repo) — 120 commits
  • (root) — 101 commits
  • .github/workflows — 24 commits
  • src/cli.rs — 10 commits
  • tests/tests.rs — 9 commits
  • doc/fd.1 — 7 commits
  • src/exec — 5 commits
  • src/walk.rs — 5 commits
  • src/main.rs — 3 commits
  • src/config.rs — 2 commits
  • src/dir_entry.rs — 2 commits
  • .cargo/config.toml — 1 commit
  • .github/dependabot.yml — 1 commit
  • .sisyphus/drafts — 1 commit
  • contrib/completion — 1 commit
  • doc/release-checklist.md — 1 commit
  • src/error.rs — 1 commit
  • src/filesystem.rs — 1 commit
  • src/filter — 1 commit
  • src/hyperlink.rs — 1 commit

Notable commits

  • fix: Add changelog entry for Windows hyperlink fix
  • fix: Fix Windows hyperlinks for paths with spaces
  • fix: Fix completions for alias fdfind in deb package for bash, zsh and fish.
  • fix: Fix inconsistent code fence language in README.md
  • fix: Fixes for tmccombs review comments.
  • fix: Merge pull request #1833 from tmccombs/build-fixes
  • fix: Merge pull request #1839 from andstepan/fix/read-bin-from-environment
  • fix: Merge pull request #1872 from josephadamsdev/fix-1843-windows-hyperlink-slash
  • fix: Merge pull request #1889 from skane-lukas/issue-1888-fix-symlink-bash-completion
  • fix: Merge pull request #1904 from tmccombs/fix-deploy
  • fix: Merge pull request #1921 from rexkirshner/fix-exclude-value-name-glob
  • fix: Merge pull request #1928 from tmccombs/full-path-fixes
  • fix: Merge pull request #1934 from Rohan5commit/docs/fix-contributing-intro-20260319
  • fix: Merge pull request #1941 from tmccombs/fix-attest
  • fix: Merge pull request #1975 from SAY-5/fix/pattern-path-separator-v2
  • fix: Merge pull request #1979 from YoshKoz/fix/pwsh-placeholder-docs
  • fix: Merge pull request #2036 from greymoth-jp/fix/and-pattern-path-separator
  • fix: Merge pull request #2039 from hexbinoct/fix/min-depth-broken-symlink
  • fix: Merge pull request #2040 from bonanza127/fix-readme-number-format
  • fix: Merge pull request #2064 from WilliamLeony/fix-readme-bash-fence
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

sharkdp/fd was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ce97e473ebaec49697c07daa50a7bc2b32f713d2 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-7c1cb6328e11.