// the find
skywind3000/z.lua
:zap: A new cd command that helps you navigate faster by learning your habits.
z.lua is a Lua-based rewrite of the classic z.sh directory-jumper: it tracks which directories you cd into and lets you jump to them with fuzzy/regex matches on 'frecency' (frequency + recency). It's for anyone who wants autojump/z-style navigation but needs it working consistently across bash, zsh, fish, PowerShell, cmd, and WSL rather than just POSIX shells.
Shell coverage is genuinely broad and well thought out — PowerShell, Windows cmd/clink, Nushell, and legacy ksh/posix all get dedicated init paths, not just an afterthought. The 'enhanced' matching mode (prioritize last path segment, fall back to real cd if no match) solves a real annoyance with the original z.sh algorithm. Backward jumping (`zb`) to a git/hg/svn root or a named parent is a feature original z.sh never had and is useful on its own. It's a single self-contained script with an optional native C module (czmod) for people who care about shaving milliseconds off every prompt.
It depends on a Lua interpreter being installed, which on most systems is an extra runtime to acquire — zoxide, the tool most people compare this against now, ships as a single static binary with no runtime dependency at all. The benchmark numbers in the README are from the author's own NAS, no methodology given, and don't include zoxide, so the speed claims are dated and incomplete. The WSL-1 workaround (installing lua-filesystem to dodge a known WSL defect) and the fish-version pin (2.4.0+, 2.7.0+ for some features) are signs of real cross-platform fragility you'll hit eventually. Version history tops out at 1.8.7 in 2020 with no newer entries despite a recent push, which suggests the repo is barely maintained beyond incidental commits — there's no visible test suite either, so changes to the matching logic across this many shell targets aren't being verified automatically.