One-liner scripts (no Node required)

Both scripts always pull the latest GitHub Release binary for your platform. No sudo, no admin prompt. Override with HFO_VERSION=v0.2.0 (or $env:HFO_VERSION) to pin a specific tag, or HFO_INSTALL_DIR=/some/dir to relocate.

# Detects OS + arch, installs to /usr/local/bin or ~/.local/bin $ curl -fsSL https://hfo.carrillo.app/install.sh | sh # Installs to %LOCALAPPDATA%\Programs\hfo and adds it to user PATH. No admin needed. PS> irm https://hfo.carrillo.app/install.ps1 | iex

Binaries are built only when a v*.*.* tag is pushed, never on regular commits. CI runs typecheck + lint + test + build on every commit, but release artifacts are reserved for tagged versions.

Package managers

All four publish the same hfo-cli package. Node.js ≥ 20 required.

$ npm i -g hfo-cli $ pnpm add -g hfo-cli $ yarn global add hfo-cli $ bun add -g hfo-cli

Standalone binaries

Each tagged release publishes self-contained executables — no Node runtime required. Download and drop on your PATH.

AssetOS · Arch
hfo-linux-x64Linux x64 (glibc)
hfo-linux-arm64Linux arm64 (Raspberry Pi 4/5, Graviton, etc.)
hfo-macos-x64macOS x64 (Intel)
hfo-macos-arm64macOS arm64 (Apple Silicon M1+)
hfo-win-x64.exeWindows x64
$ curl -LO https://github.com/carrilloapps/hfo/releases/latest/download/hfo-linux-x64 $ chmod +x hfo-linux-x64 $ sudo mv hfo-linux-x64 /usr/local/bin/hfo $ hfo --version

Verify the install

$ hfo --version hfo v0.1.0 · MIT · José Carrillo # Print hardware profile and recommended picks $ hfo --view # Launch the fullscreen TUI $ hfo

Troubleshooting

Command not found after install

If hfo: command not found appears immediately after the install script, the install directory isn't on your PATH yet.

  • macOS / Linux: open a new terminal (the script edits ~/.profile or ~/.zprofile), or run source ~/.profile.
  • Windows: close and reopen PowerShell. The PATH change is per-user and takes a new session.
  • Global npm: check npm prefix -g — that directory's bin subfolder must be on PATH.

Ollama not found

hfo doesn't require Ollama to already be installed. On first run, if it's missing, you'll see an installer overlay offering the platform-appropriate method (winget install Ollama.Ollama, brew install ollama, or the official curl | sh). Confirm with Enter, or install manually and re-run hfo.

Node version mismatch

All four package managers require Node.js 20 or newer. Check with node -v. Upgrade via nvm (Unix), fnm, or n. The standalone binaries have no Node dependency.

Corporate proxy / mirror

If npm can't reach the registry, set your proxy first:

npm config set proxy       http://your-proxy:8080
npm config set https-proxy http://your-proxy:8080
npm config set registry    https://your-registry.example.com/

Or use the standalone binary — it only contacts GitHub Releases (one HTTPS request) and then Hugging Face at runtime.

SELinux / AppArmor blocking nvidia-smi

Hardware scoring calls nvidia-smi to read VRAM. If the binary runs confined, the call silently fails and GPU scoring returns zero. Either run hfo unconfined or pre-populate settings.modelDir and skip the scoring step by passing --dir.

Uninstall

# via npm / pnpm / yarn / bun $ npm uninstall -g hfo-cli # standalone binary on Linux / macOS $ sudo rm /usr/local/bin/hfo # Windows (PowerShell) PS> Remove-Item "$env:LOCALAPPDATA\Programs\hfo" -Recurse -Force

Settings file (settings.json) and model downloads are untouched. Remove them manually if desired:

  • Windows — %APPDATA%\hfo\
  • macOS — ~/Library/Application Support/hfo/
  • Linux — ~/.config/hfo/