Install hfo
Pick a one-line install script, a package manager you already have, or download a standalone binary straight from GitHub Releases. Everything below assumes a fresh machine — no prior Ollama, Node, or Hugging Face setup required.
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.
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.
Standalone binaries
Each tagged release publishes self-contained executables — no Node runtime required. Download and drop on your PATH.
| Asset | OS · Arch |
|---|---|
hfo-linux-x64 | Linux x64 (glibc) |
hfo-linux-arm64 | Linux arm64 (Raspberry Pi 4/5, Graviton, etc.) |
hfo-macos-x64 | macOS x64 (Intel) |
hfo-macos-arm64 | macOS arm64 (Apple Silicon M1+) |
hfo-win-x64.exe | Windows x64 |
Verify the install
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
~/.profileor~/.zprofile), or runsource ~/.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'sbinsubfolder must be onPATH.
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
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/