{"contract_version":"1.1.0","rubric_version":"1.0.0","archetype_version":"1.1.0","judge_model":"claude-fable-5","judge_effort":"high","skill_version":"0.1.0","commit_sha":"235a726fae89bec3ac6d3e7facd2716d78bb625d","filed_at":"2026-07-21T02:08:54Z","repo":{"owner":"junegunn","name":"fzf","default_branch":"master"},"purpose":{"what_its_for":["General-purpose command-line fuzzy finder: reads lines from stdin, interactive filter UI, writes selection to stdout","Interactive terminal toolkit — event-driven bindings (reload, become, execute, preview) turn shell one-liners into rich TUIs","Batteries-included shell integration: bash/zsh/fish/Nushell key bindings + fuzzy completion, Vim/Neovim plugin, tmux/Zellij popup support"],"purpose_statement":"fzf is the de-facto standard interactive fuzzy filter for the Unix pipeline: a single Go binary that turns any line-oriented input into a fast interactive selection UI, plus a mature ecosystem of shell, editor, and multiplexer integrations.","archetype":"cli-tool","audience":"Terminal users and shell scripters on every major platform, from casual CTRL-R users to authors of complex TUI workflows built on fzf's event/binding system; secondarily plugin authors (Vim ecosystem)","category_candidates":["fuzzy-finder","cli-tool","terminal-ui","shell-integration","developer-tools"]},"scores":{"axes":{"concept":{"score":9.5,"grade":"AAA","rationale_ref":"src-core"},"usefulness":{"score":9.5,"grade":"AAA","rationale_ref":"readme"},"ergonomics":{"score":9,"grade":"AAA","rationale_ref":"options-parse"},"maturity":{"score":9,"grade":"AAA","rationale_ref":"terminal-loop"},"longevity":{"score":8,"grade":"AA","rationale_ref":"map"},"openness":{"score":7,"grade":"A","rationale_ref":"contributing-absent"},"setup_friction":{"score":9.5,"grade":"AAA","rationale_ref":"install-script"},"issue_health":{"score":7,"grade":"A","rationale_ref":"health"},"supply_chain":{"score":9,"grade":"AAA","rationale_ref":"ci-release"},"hype_substance":{"score":9.5,"grade":"AAA","rationale_ref":"simd-fuzz"}},"rollups":{"dependability":8.3,"craftsmanship":9.2,"docs":8.9,"trust":8.6},"composite":8.8,"grade":"AA","recommendation":"ADOPT","confidence":"high"},"summary":{"context_line":"Audited after reading 69k tokens across 30 files.","intro":["fzf is the command-line fuzzy finder: the single Go binary that turned interactive filtering into a shell primitive, with first-class integrations for four shells, Vim, and tmux [readme]. The question this audit set out to answer is whether a 13-year-old tool run essentially by one person can still be trusted as a daily dependency. The code answers louder than the bus factor does."],"holds_up":[{"lead":"The engineering behind the speed claim is real.","text":"\"Millions of items in milliseconds\" is backed by hand-written AVX2 and NEON assembly with fuzz tests in CI, slab allocators reused across matcher threads, and per-chunk query-bitmap caches — measured design, not README bravado [simd-fuzz][src-algo][src-matcher].","refs":["simd-fuzz","src-algo","src-matcher"]},{"lead":"The test harness treats the terminal as the API.","text":"A tmux-driven Ruby suite simulates real keystrokes, mouse clicks, and ANSI state across bash, zsh, fish, and Nushell on every push, alongside Go unit and fuzz tests — which is why an 8,700-line terminal core stays shippable [test-common-rb][ci-linux].","refs":["test-common-rb","ci-linux"]},{"lead":"Releases get unusual care for a solo project.","text":"Signed tags, a human-approved release gate, version-consistency checks across six files, macOS signing and notarization, and a security policy that has handled and credited real vulnerability reports [ci-release][release-md][security-md].","refs":["ci-release","release-md","security-md"]}],"knocks":[{"lead":"Everything rests on one maintainer.","text":"Two people account for 80% of 3,687 commits, and there is no CONTRIBUTING file or contributor documentation to grow a successor — external patches merge in half a day, but nobody else could run this project tomorrow [map][contributing-absent].","refs":["map","contributing-absent"]},{"lead":"The issue tracker has a fast front door and a full warehouse.","text":"First responses land within hours, yet 83% of open issues have sat untouched for six months and no triage automation exists — report a bug and you will be heard quickly, but the long tail is where feature requests go to rest [health][stale-issue-policy].","refs":["health","stale-issue-policy"]},{"lead":"The core concentrates in two giant files.","text":"terminal.go carries 8,711 lines at the highest measured complexity and options.go another 4,000; both are well-tested through the public surface, but the wall a new contributor faces sharpens the single-maintainer risk rather than softening it [static][map].","refs":["static","map"]}],"bottom_line":"Adopt without hesitation — and hope junegunn never gets bored."},"use_cases":{"reach_for_it":["Any interactive pick-from-many step in a shell workflow — files, branches, processes, history — where a portable single binary and one-line shell integration matter","Building interactive terminal UIs from plain shell scripts via the --bind event system, preview windows, and the localhost HTTP API, without writing a TUI from scratch"],"look_elsewhere":[{"when":"You need fuzzy matching embedded as a library inside your own application rather than as a spawned binary","instead":"helix-editor/nucleo"},{"when":"You mainly want a full file manager or directory navigator with previews, not a general-purpose filter","instead":"gokcehan/lf"}]},"alternatives_note":"skim is the closest Rust drop-in; nucleo embeds the matching algorithm as a library; lf and broot cover the file-navigation niche."}