junegunn/fzf
Dependencies
fzf has a deliberately small dependency graph — the binary is meant to install in one step and run anywhere. Module declarations live in go.mod.
Direct Go dependencies
| Module | Version (at v0.72.0) |
Purpose | Where it's used |
|---|---|---|---|
github.com/charlievieth/fastwalk |
v1.0.14 |
Parallel directory walker with sensible Windows behavior. | src/reader.go (readFiles). |
github.com/gdamore/tcell/v2 |
v2.9.0 |
Terminal cell-based renderer. | src/tui/tcell.go (only with -tags tcell). |
github.com/junegunn/go-shellwords |
pseudo-version | Shell-style argument splitter. Maintainer's fork of mattn/go-shellwords. |
src/options.go (parsing FZF_DEFAULT_OPTS). |
github.com/mattn/go-isatty |
v0.0.20 |
TTY detection. | src/util/util.go (and OS-specific util). |
github.com/rivo/uniseg |
v0.4.7 |
Unicode grapheme cluster segmentation and width. | src/util/chars.go, src/terminal.go, src/tui/tui.go. |
golang.org/x/sys |
v0.35.0 |
OS primitives (signals, terminal modes, syscalls). | src/util/util_unix.go, src/util/util_windows.go, src/tui/light_*.go. |
golang.org/x/term |
v0.34.0 |
Raw-mode terminal control. | src/tui/light.go. |
Indirect Go dependencies
| Module | Pulled in by |
|---|---|
github.com/gdamore/encoding |
tcell/v2 |
github.com/lucasb-eyer/go-colorful |
tcell/v2 |
github.com/mattn/go-runewidth |
tcell/v2, uniseg |
golang.org/x/text |
tcell/v2, uniseg |
Build dependencies
These are not pulled in by the Go module graph but are required by make:
- Go 1.23 — declared in
go.mod, required by every Go-related target. - GoReleaser — used by
make buildandmake release(.goreleaser.yml). - Ruby + Minitest + Rubocop — used by
make itestandmake lint(Gemfile,Gemfile.lock). shfmt— used bymake lint(shell/update.sh --check).tmux— required for the integration test harness.zsh,fish— required for the shell-integration tests.stringer(golang.org/x/tools/cmd/stringer) — invoked bygo generate.
Runtime dependencies
The binary itself runs unaided. The shell integrations and preview script have soft dependencies:
awk(ormawk) — used by the bash/zsh integration helpers.bash— used bybin/fzf-tmuxandbin/fzf-preview.sh.tmux— required when running in a tmux split or--tmuxpopup.man— used byfzf --manto render the embedded man page throughman.- Optional preview tools used by
bin/fzf-preview.sh:bat,chafa,ueberzug,kitty +kitten icat,unar,tree, etc. The script gracefully falls back if a tool is missing.
Why so few
A general-purpose CLI tool is most useful when it works in a fresh container, on a corporate jump box, on Windows, on a Raspberry Pi, on macOS, on FreeBSD, etc. Every additional dependency is one more thing that can fail to build or be at the wrong version. The matchers and the renderer (light.go) are explicitly hand-rolled for this reason; tcell is gated behind a build tag to keep the default binary small and fast.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.