Installing helexa

helexa is two programs. cortex is the control plane: one instance, in front of the fleet, presenting the API and deciding which host serves what. neuron is the node plane: one instance on every GPU host, running inference in-process and managing local hardware and model lifecycle.

cortex never touches a GPU, never shells out to nvidia-smi, and never manages a model directly. It talks only to neurons. That separation is what lets a host be added, drained or lost without reconfiguring the gateway.

                 ┌──────────────┐
   clients ────▶│    cortex    │   :31313 API, :31314 metrics
                 └──┬────┬────┬─┘
                    │    │    │
               ┌────▼┐ ┌─▼──┐ ┌▼────┐
               │neuron│ │neuron│ │neuron│   :13131 each
               │ GPU  │ │ GPU  │ │ GPU  │
               └──────┘ └──────┘ └──────┘

Requirements

Install

dnf copr enable helexa/helexa

# on the gateway host
dnf install cortex
systemctl enable --now cortex

# on each GPU host
dnf install helexa-neuron
systemctl enable --now neuron

The package is named helexa-neuron because Fedora already ships an unrelated neuron. The binary, service, user and config directory are all still called neuron.

Verify

Each neuron reports what it found:

curl http://gpu-host:13131/discovery   # devices, VRAM, CUDA, driver
curl http://gpu-host:13131/health      # live VRAM, utilisation, temps
curl http://gpu-host:13131/version     # which build is actually running

/version is the one to trust when asking "is my change live?" — it reports the build identity of the running process, which a package version alone does not.

Then, from the gateway:

cortex status                          # fleet view
curl http://localhost:31313/v1/models  # one catalogue across every node

If a host appears in cortex status but its models do not appear in /v1/models, the neuron is reachable but cannot currently serve — usually not enough free VRAM. /health on that host will say so.

Where to go next

Building from source

cargo build --release

Keep the checks green — CI treats warnings as errors:

cargo fmt --check --all
cargo clippy --workspace -- -D warnings
cargo test --workspace

Note that a local build is CPU-only unless you enable the CUDA feature; the GPU paths are compiled out, so passing tests locally does not prove the CUDA build compiles.