Skip to main content

fzd

Crates.io npm PyPI CI License: MIT

Interactive terminal directory explorer that cd's your shell.

fzd opens a fuzzy, keyboard-driven TUI for browsing directories. It draws its UI to stderr and prints only the chosen absolute path to stdout, so a tiny shell wrapper can capture that path and run the real cd in your current shell.

Install

Pick whichever ecosystem you already live in — every channel ships the same binary.

Channel Command
Cargo cargo install fzd
npm npm install -g fzd
PyPI pip install fzd
Script curl -fsSL https://raw.githubusercontent.com/ervan0707/fzd/main/install.sh | bash
Nix nix profile install github:ervan0707/fzd

Shell integration

Because a child process can't change its parent shell's directory, fzd prints the picked path and a wrapper does the cd. For fish, source the bundled function:

source /path/to/shell/fzd.fish

Then:

fzd            # browse from the current directory
fzd ~/code     # browse starting somewhere else
fzd --jump     # jump straight to frecent / bookmarked dirs
fzd -j         # short form

Usage

fzd [OPTIONS] [PATH]

Arguments:
  [PATH]  Directory to start in (defaults to the current directory)

Options:
  -j, --jump        Start directly in jump mode (frecent + bookmarked dirs)
  -a, --all         Show hidden (dot) files from the start
      --print-only  Do not record the accepted directory in the frecency store
      --check-update  Check GitHub for a newer release, then exit
      --update        Download the latest GitHub release and replace this binary
      --force         With --update, replace a package-manager-managed binary
  -h, --help        Print help
  -V, --version     Print version

Updating

fzd --check-update compares your installed version against the latest GitHub release and prints whether you're current, without opening the TUI.

fzd --update goes further: it downloads the release binary for your platform and swaps it in over the running executable. This is meant for the raw-binary install (the curl | bash script or a manual download). If fzd was installed through a package manager, --update stops and points you at the right command (cargo install fzd --force, npm update -g fzd, brew upgrade fzd, and so on). Pass --force to self-replace anyway.

Development

This repo ships a Nix flake and a pinned Rust toolchain:

nix develop          # enter the dev shell (or `direnv allow` with the .envrc)
cargo run            # run locally
cargo build --release

Releasing

Releases are fully automated from Conventional Commits via semantic-release in GitHub Actions. A feat:/fix:/feat!: commit on main computes the next version, builds binaries for six platforms, and publishes to crates.io, npm, PyPI, and GitHub Releases in one run. See .github/workflows/release.yml.

License

MIT

Release files for fzd 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fzd 1.0.0
File Size Uploaded
fzd-1.0.0.tar.gz 29.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fzd 1.0.0
File
fzd-1.0.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
fzd-1.0.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
fzd-1.0.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 9.4 MB

Release files / fzd-1.0.0.tar.gz

Download URL fzd-1.0.0.tar.gz
Size 29.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7b2c3b4eb6e0ffa7ea6fa5417f219e6e2654c013f8488b55bdb0720c93a4d33d
BLAKE2b-256 checksum
How to use checksums
68da94eee317e3dbd6706ebac8f643a6645a393c6825c97b02c90f32a91386d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-win_arm64.whl

Download URL fzd-1.0.0-py3-none-win_arm64.whl
Size 1.5 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
03c20a65d9726698654a3edaaf31ad5c98d07a84097263c1ca0f6cf34ee410ea
BLAKE2b-256 checksum
How to use checksums
aec4162864a26b736b02a38cc8aef66a10d157bd3025270eba63860d7b814b3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-win_amd64.whl

Download URL fzd-1.0.0-py3-none-win_amd64.whl
Size 1.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3d5b7a2461c040531268202d2f0e3003160a4ee178b42040ad8e6718a89959f7
BLAKE2b-256 checksum
How to use checksums
93a38d6a22a6555c12c5ad8dee21d9f6d4c1084fc51809943ce6899c767d19cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9193033de6f895621e4d85a2eeb739eb67b80948a310f576221a045341ce0ca0
BLAKE2b-256 checksum
How to use checksums
7be1f93143f86ccd6af111b649af5676903d35e2e934f3609b9be23b7f2dd28f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c0ec585ebcd2ab9f6ec6b3d6d649dcb431957c534b854a4b0d4a9583a52ef0aa
BLAKE2b-256 checksum
How to use checksums
23ddce8f11f7a867478dea044d4e6f7c885d098a2a704563327ac8d958d47be4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-macosx_11_0_arm64.whl

Download URL fzd-1.0.0-py3-none-macosx_11_0_arm64.whl
Size 1.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
085afc452bd215fb30277ff51eeda8eff6b543f71fa5564c4152806ef3e2a350
BLAKE2b-256 checksum
How to use checksums
80b5e1d2709831a973d0fb496abc1fedee17805cca0e8544f5d676e464ce680c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl

Download URL fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d2d3e29969dd75275ba4b3c925c3d9fd7ab161f7b43c1c3f9a6248114bef21de
BLAKE2b-256 checksum
How to use checksums
dc90e3f02174ace616ed99b61ca82d7033a2b039bf2db96738a2052b663d0529
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release history Release notifications | RSS feed

This release

1.0.0 This release

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page