Interactive terminal directory explorer that cd's your shell
Project description
fzd
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b2c3b4eb6e0ffa7ea6fa5417f219e6e2654c013f8488b55bdb0720c93a4d33d
|
|
| MD5 |
3806d2abd484b009a5a83db1ab18def2
|
|
| BLAKE2b-256 |
68da94eee317e3dbd6706ebac8f643a6645a393c6825c97b02c90f32a91386d1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03c20a65d9726698654a3edaaf31ad5c98d07a84097263c1ca0f6cf34ee410ea
|
|
| MD5 |
c46ee4d9e67cddabad05d0cf84959e40
|
|
| BLAKE2b-256 |
aec4162864a26b736b02a38cc8aef66a10d157bd3025270eba63860d7b814b3e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d5b7a2461c040531268202d2f0e3003160a4ee178b42040ad8e6718a89959f7
|
|
| MD5 |
8c1d03b01e4a48f3655194e1549ebd1e
|
|
| BLAKE2b-256 |
93a38d6a22a6555c12c5ad8dee21d9f6d4c1084fc51809943ce6899c767d19cc
|
File details
Details for the file fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: fzd-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9193033de6f895621e4d85a2eeb739eb67b80948a310f576221a045341ce0ca0
|
|
| MD5 |
b66ddaf8a2465e796089e4295b991fab
|
|
| BLAKE2b-256 |
7be1f93143f86ccd6af111b649af5676903d35e2e934f3609b9be23b7f2dd28f
|
File details
Details for the file fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: fzd-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0ec585ebcd2ab9f6ec6b3d6d649dcb431957c534b854a4b0d4a9583a52ef0aa
|
|
| MD5 |
de14c54ffb850926eab08dbf40e04300
|
|
| BLAKE2b-256 |
23ddce8f11f7a867478dea044d4e6f7c885d098a2a704563327ac8d958d47be4
|
File details
Details for the file fzd-1.0.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: fzd-1.0.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
085afc452bd215fb30277ff51eeda8eff6b543f71fa5564c4152806ef3e2a350
|
|
| MD5 |
db9113cbfcfc8fe73a1d308ec2b2ccb5
|
|
| BLAKE2b-256 |
80b5e1d2709831a973d0fb496abc1fedee17805cca0e8544f5d676e464ce680c
|
File details
Details for the file fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: fzd-1.0.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2d3e29969dd75275ba4b3c925c3d9fd7ab161f7b43c1c3f9a6248114bef21de
|
|
| MD5 |
bcb2ae2ab4876a5bdc53ecba0a276e6a
|
|
| BLAKE2b-256 |
dc90e3f02174ace616ed99b61ca82d7033a2b039bf2db96738a2052b663d0529
|