Documentation Index
Fetch the complete documentation index at: https://mintlify.hoop.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The hoop CLI ships a built-in version manager modeled onnvm and fnm. It downloads release binaries, stores them under $HOME/.hoop/versions/<version>/hoop, and points a single symlink at $HOME/.hoop/bin/hoop to the active version. Add that directory to your PATH once and you can switch versions freely without ever touching brew or /usr/local/bin again.
All version-management commands live under hoop versions:
| Subcommand | Aliases | Purpose |
|---|---|---|
sync | Install the version reported by the connected gateway | |
upgrade | Install the latest published release from releases.hoop.dev | |
install <version> | Download a specific version | |
list | ls | Show installed versions and the active one |
use <version> | Switch the active version | |
remove <version> | rm, uninstall | Delete an installed version |
The version manager only handles releases 1.74.0 and newer —
hoop versions was introduced in that release. Older CLIs don’t ship this command group, so the manager refuses to install them (it would leave you unable to switch back).hoop versions sync
Asks the connected gateway for its version (via/api/serverinfo), downloads the matching CLI release for your OS and architecture, verifies the SHA-256 checksum, and switches the active version to the newly installed one.
hoop login or hoop config create --api-key ...).
Example:
Flags
| Flag | Default | Description |
|---|---|---|
-y, --yes | false | Assume yes for the interactive PATH-setup prompt |
--skip-path-hint | false | Skip the PATH check and prompt entirely |
hoop versions upgrade
Fetches the latest released version published at releases.hoop.dev/release/latest.txt and installs it. Does not consult the gateway and does not requirehoop login — this is the right command when you just want to track the latest stable hoop release regardless of which gateway you happen to be pointed at.
Flags
| Flag | Default | Description |
|---|---|---|
-y, --yes | false | Assume yes for the interactive PATH-setup prompt |
--skip-path-hint | false | Skip the PATH check and prompt entirely |
sync vs upgrade
| When you want… | Use |
|---|---|
| The CLI to match the gateway you’re connected to | hoop versions sync |
| The newest published hoop release, regardless of gateway | hoop versions upgrade |
| A specific older or pinned version | hoop versions install <version> |
1.74.x while 1.75.x is out): sync will install 1.74.x so you stay compatible, while upgrade will jump you to 1.75.x.
PATH setup
For the active version to take effect in your shell,$HOME/.hoop/bin needs to be on PATH ahead of any Homebrew or system path. The first time you run hoop versions sync (or hoop versions upgrade, or hoop versions install --use ...), the CLI checks PATH and offers to append the right export line to your shell rc file.
| Shell | rc file | Line appended |
|---|---|---|
| zsh | ~/.zshrc | export PATH="$HOME/.hoop/bin:$PATH" |
| bash | ~/.bashrc (or ~/.bash_profile) | export PATH="$HOME/.hoop/bin:$PATH" |
| fish | ~/.config/fish/config.fish | fish_add_path -p "$HOME/.hoop/bin" |
-y to accept the prompt non-interactively, or --skip-path-hint to suppress it (handy in CI).
After the rc file is updated, open a new shell or source the file. Verify with:
If
which hoop still points at Homebrew (/opt/homebrew/bin/hoop or /usr/local/bin/hoop), your existing PATH puts Homebrew first. Move the hoop export above the Homebrew block in your rc file.hoop versions install
Direct, explicit-version install. Useful for pinning, testing against an older release, or installing in environments where you don’t want to go through the gateway/latest indirection.| Flag | Default | Description |
|---|---|---|
--use | false | Switch the active version to the newly installed one |
--reinstall | false | Force re-download even if the version is already installed |
--reinstall is not passed, the command exits cleanly without downloading anything.
hoop versions list
* marks the currently active version (whatever $HOME/.hoop/bin/hoop points at).
hoop versions use
$HOME/.hoop/bin/hoop symlink to point at the requested version. Fails if the version isn’t installed — install it first with hoop versions install <version>, or use the --use shortcut shown above.
hoop versions remove
$HOME/.hoop/versions/<version>/ and drops it from the store. Removing the active version requires --force; the symlink is then unlinked so you don’t end up with a dangling path.
Version-mismatch warning
The CLI watches theServer header on every gateway response. When the gateway reports a version different from the locally-built CLI, you’ll see a single one-shot warning on stderr per process:
- The local CLI was built without a release tag (i.e. its own version is
unknown). - You’re already running
hoop versions syncorhoop versions upgrade, so the message doesn’t appear just before the install banner.
File layout
The version manager only touches files under$HOME/.hoop/:
versions.toml is the source of truth for what is installed and which version is active. The bin/hoop symlink only mirrors it; if the symlink is missing or broken, the next hoop versions sync, upgrade, or use rebuilds it.
Caveats
Minimum installable version
hoop versions would orphan you on a version that can’t manage itself.
Local development gateways
When the gateway reports its version asunknown, it’s usually a local dev build that was compiled without a release tag injected via -ldflags. hoop versions sync cannot install an “unknown” release, so it returns:
hoop versions upgrade is the right escape hatch — it doesn’t consult the gateway at all.
Next Steps
CLI Reference
Full CLI installation, authentication, and configuration guide
Releases
Browse and download specific hoop releases on GitHub