hyper-jump is a small, cross-platform version manager for a fixed set of command-line tools. it downloads release binaries, installs them under the hyper-jump data dir and gives you a single command to manage versions.
this project is intentionally narrow. it does one job and keeps the surface area small.
the goal is a small, predictable tool for a handful of binaries that ship on github releases. nix pkgs, homebrew and friends are fine for stable apps, but they tend to lag behind upstream tags and keeping overlays or waiting for packaging updates adds overhead.
the usual setup effort adds friction: nix's steep learning curve, inconsistent idioms and rough discoverability, plus brew's dependency resolution churn, disk bloat and periodic support or sudo friction on older macs. a single binary plus a private data dir stays out of the way.
nix packages were intentionally skipped because they pull users into a full ecosystem with its own workflows, which is more ceremony than this problem needed. even if you like nix, it's a hard sell for teams who just want a binary to exist and a version to be pinned without retraining or extra concepts. hyper-jump keeps versions side by side, pulls directly from upstream releases and lets you switch instantly without touching system state.
- a practical version manager for the supported packages listed below
- built for daily use rather than general-purpose plugin ecosystems
- a single cli with explicit subcommands and predictable paths
- a universal version manager for arbitrary tools
- a long-running background service
- a plugin framework
cargo install hyper-jumpmake sure the install directory is on your PATH.
export PATH="$(hj prefix):$PATH"on macos, you can also set the user path once:
sudo launchctl config user path "$(hj prefix):${PATH}"run hj --help if you can't remember the subcommands.
quick start
hj list-remote reth
hj install reth v1.10.2
hj use reth v1.10.2
hj list rethcommands
hj install <package> <version|latest>install a versionhj use <package> <version|latest>switch to a version and mark it as usedhj list <package>show installed versionshj list-remote <package>show remote versionshj uninstall <package> <version>remove a versionhj eraseremove all installed versionshj prefixprint the bin dir used for shims
notes
versionaccepts tags likev1.10.2orlatest--output-format json|tableorHYPER_JUMP_OUTPUT_FORMATchanges list output format--root-dir <path>orHYPER_JUMP_ROOT_DIRoverrides the data dirHYPER_JUMP_PACKAGES_FILEpoints to a custompackages.toml- make sure the path from
hj prefixis on yourPATHor nothing will run
these come from packages.toml. by default the binary uses the embedded list,
or you can drop a file at <root_dir>/packages.toml to override it.
- neovim
- jujutsu
- zellij
- reth
- cardano node
- cardano cli
- partner chains node
- cardano submit api
- sidechain cli
- mithril client
- scrolls
- oura
- dolos
- aiken
- update notifications for new releases