install
One cargo command puts the binary in ~/.cargo/bin. A shell wrapper makes wh switch a real cd.
cargo
That puts wh in ~/.cargo/bin.
shell wrapper
Add the shell wrapper so wh switch can actually change directory. It prints a small wh() function that forwards every command and turns wh switch into a cd; nothing is written, you eval it from your rc file.
wh init knows zsh, bash, and fish. Any other name fails with unsupported shell '<name>' (zsh, bash, fish).
requirements
git, always. Every git call shells out to the system binary; nothing is linked in.curl, forwh explain. The model is called through the system curl.- A terminal with
sttyand/dev/tty, for thewh switchpicker. Without one, pass a query:wh switch <name>.
All of these ship with macos and virtually every linux.
releases
Tagged releases (v*) build four binaries: aarch64-apple-darwin, x86_64-apple-darwin, and two static musl builds, x86_64-unknown-linux-musl and aarch64-unknown-linux-musl. Each lands as wh-<tag>-<target>.tar.gz next to a checksums.txt with sha256 sums, in a draft github release. A curl | bash installer comes with the first release; until there is a tag, install from git as above.