fman
fman — fuzzy-find any command on your PATH and open its man page.

Install
From source
go install github.com/ImStyrene/fman@latest
With Nix (flake)
nix run github:ImStyrene/fman
With Nix (nixpkgs, once merged)
nix run nixpkgs#fman
Usage
fman
- Start typing to filter the list of all available commands.
- Press
↑/↓ to navigate, Enter to select.
man <command> opens automatically.
- Press
Esc or Ctrl+C to quit without selecting.
How it works
fman is a single Go binary with zero runtime dependencies:
listCommands() — scans every directory in $PATH, collects unique executable filenames.
- Fuzzy matching — built-in scorer: exact position (+100), near match (+50), start-of-string (+80), word boundary (+60), consecutive (+40). Prefers shorter names as tiebreaker.
- TUI — powered by bubbletea (no fzf, no ncurses).
man invocation — exec.Command("man", chosen), wrapped via wrapProgram in the Nix package.
Package for nixpkgs
The default.nix in this repo is ready for pkgs/tools/misc/fman/:
# pkgs/top-level/all-packages.nix
fman = callPackage ../tools/misc/fman { };
Update the hash and vendorHash after fetching:
nix build 2>&1 | grep "got:"
# paste the hash into default.nix
License
MIT