Home / getting-started / installation

Installation

hof is available for all major operating systems and architectures.

Recommended version: v0.6.9-beta.1

Git and oneOf( Docker, Podman, Nerdctl ) are also recommended.

Binary downloads

These are the same links for the curl. Rename the file to hof and place it in your PATH.

All Releases

Container Images

Homebrew


brew install hofstadter-io/tap/hof

Source


git clone https://github.com/hofstadter-io/hof && cd hof
# git checkout vX.Y.Z (optionally, pick a tag)
make hof

Updating hof

You can use the built-in update command to check and install any version.


# Check for an update
hof update --check
# Update to the latest version
hof update
# Install a specific version
hof update --version vX.Y.Z

with Homebrew


# Check for an update in brew
brew outdated hofstadter-io/tap/hof
# Update to the latest version in brew
brew upgrade hofstadter-io/tap/hof
# To get more info regarding hof package
brew info hofstadter-io/tap/hof

Testing hof

Run hof help in your terminal.

output

hof - the higher order framework
Learn more at https://docs.hofstadter.io
Usage:
hof [flags] [command] [args]
Main commands:
chat co-create with AI (alpha)
create starter kits or blueprints from any git repo
datamodel manage, diff, and migrate your data models
def print consolidated CUE definitions
eval evaluate and print CUE configuration
export output data in a standard format
flow run workflows and tasks powered by CUE
fmt format any code and manage the formatters
gen CUE powered code generation
mod CUE module dependency management
tui a terminal interface to Hof and CUE
vet validate data with CUE
Additional commands:
help help about any command
update check for new versions and run self-updates
version print detailed version information
completion generate completion helpers for your terminal
feedback open an issue or discussion on GitHub
Flags:
-E, --all-errors print all available errors
-h, --help help for hof
-i, --ignore-errors turn off output and assume defaults at prompts
-D, --include-data auto include all data files found with cue files
-V, --inject-env inject all ENV VARs as default tag vars
-I, --input stringArray extra data to unify into the root value
-p, --package string the Cue package context to use during execution
-l, --path stringArray CUE expression for single path component when placing data files
-q, --quiet turn off output and assume defaults at prompts
-d, --schema stringArray expression to select schema to apply to data files
--stats print generator statistics
-0, --stdin-empty A flag that ensure stdin is zero and does not block
-t, --tags stringArray @tags() to be injected into CUE code
-v, --verbosity int set the verbosity of output
--with-context add extra context for data files, usable in the -l/path flag
Use "hof [command] --help / -h" for more information about a command.

Opting out of telemetry

We collect a few metrics to help us understand basic usage.

  1. Which command is run, never the arguments or flags
  2. OS & arch
  3. the hof version

link to code

To opt out of telemetry, set HOF_TELEMETRY_DISABLED=1

Long term, we will move to the Go strategy, which uses a probability based method for reducing metrics even further, i.e to collect enough for statistical significance and much more focused to the questions at hand.

If you'd like to learn more about Go's telemetry proposal, see https://github.com/golang/go/discussions/58409