Skip to main content

Interactive terminal directory explorer that cd's your shell

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fzd-1.0.0.tar.gz (29.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fzd-1.0.0-py3-none-win_arm64.whl (1.5 MB view details)

Uploaded Python 3Windows ARM64

fzd-1.0.0-py3-none-win_amd64.whl (1.6 MB view details)

Uploaded Python 3Windows x86-64

fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

fzd-1.0.0-py3-none-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file fzd-1.0.0.tar.gz.

File metadata

  • Download URL: fzd-1.0.0.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for fzd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7b2c3b4eb6e0ffa7ea6fa5417f219e6e2654c013f8488b55bdb0720c93a4d33d
MD5 3806d2abd484b009a5a83db1ab18def2
BLAKE2b-256 68da94eee317e3dbd6706ebac8f643a6645a393c6825c97b02c90f32a91386d1

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: fzd-1.0.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for fzd-1.0.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 03c20a65d9726698654a3edaaf31ad5c98d07a84097263c1ca0f6cf34ee410ea
MD5 c46ee4d9e67cddabad05d0cf84959e40
BLAKE2b-256 aec4162864a26b736b02a38cc8aef66a10d157bd3025270eba63860d7b814b3e

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: fzd-1.0.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for fzd-1.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3d5b7a2461c040531268202d2f0e3003160a4ee178b42040ad8e6718a89959f7
MD5 8c1d03b01e4a48f3655194e1549ebd1e
BLAKE2b-256 93a38d6a22a6555c12c5ad8dee21d9f6d4c1084fc51809943ce6899c767d19cc

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9193033de6f895621e4d85a2eeb739eb67b80948a310f576221a045341ce0ca0
MD5 b66ddaf8a2465e796089e4295b991fab
BLAKE2b-256 7be1f93143f86ccd6af111b649af5676903d35e2e934f3609b9be23b7f2dd28f

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0ec585ebcd2ab9f6ec6b3d6d649dcb431957c534b854a4b0d4a9583a52ef0aa
MD5 de14c54ffb850926eab08dbf40e04300
BLAKE2b-256 23ddce8f11f7a867478dea044d4e6f7c885d098a2a704563327ac8d958d47be4

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fzd-1.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 085afc452bd215fb30277ff51eeda8eff6b543f71fa5564c4152806ef3e2a350
MD5 db9113cbfcfc8fe73a1d308ec2b2ccb5
BLAKE2b-256 80b5e1d2709831a973d0fb496abc1fedee17805cca0e8544f5d676e464ce680c

See more details on using hashes here.

File details

Details for the file fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2d3e29969dd75275ba4b3c925c3d9fd7ab161f7b43c1c3f9a6248114bef21de
MD5 bcb2ae2ab4876a5bdc53ecba0a276e6a
BLAKE2b-256 dc90e3f02174ace616ed99b61ca82d7033a2b039bf2db96738a2052b663d0529

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page