Houdry Fabric and Houdry Agent

CLI

houdry serve, gpu register, routing, and jobs.

The houdry binary is Houdry Fabric (houdry-genomex/houdry). Install it on GPU workstations. Houdry Agent is a separate desktop app; it is not this CLI.

After Installation:

export PATH="$HOME/.houdry/bin:$PATH"   # Windows: $HOME\.houdry\bin
houdry version

Set HOUDRY_SERVER (and optional HOUDRY_TOKEN) so you do not pass --server on every command. Config lives in ~/.houdry.

Everyday

These four commands are the whole GPU-host job:

houdry gpu detect [--json]
houdry gpu register [--server URL] [--token TOKEN] [--interval DURATION]
houdry serve [--listen ADDR] [--data DIR] [--token TOKEN] [--no-lan-discover]
houdry discover [--timeout DURATION] [--json]
CommandMeaning
gpu detectList GPUs on this machine.
gpu registerJoin the fabric and stay running. Same as node join.
serveControl plane + dashboard. Default listen 0.0.0.0:8080, HTTPS.
discoverSee control planes announced on this Wi-Fi.
gpu joinOne-shot inventory snapshot. Does not run jobs. Use gpu register.
node enroll createOne-time HDRY_… token so a GPU host can get a client cert.
versionPrint the installed Fabric version.

Leave gpu register running. Ctrl+C drains, waits for the current job, then leaves.

--token on serve is an optional chat API key (X-Houdry-Token or Authorization: Bearer). It is not the enrollment token.

Cluster

houdry node list [--server URL] [--json]
houdry node drain
houdry node leave
houdry gpu list
houdry model list
houdry model catalog

Jobs and routing

houdry job submit gpu.smoke [--wait]
houdry job submit inference --model NAME --prompt TEXT [--wait]
houdry job list
houdry job get JOB_ID
houdry route --prompt TEXT [--execute] [--wait]
houdry route --local "Say hello"
houdry route --interactive

houdry route --local benches Ollama on this machine and does not start a second HTTP server. Chat from Agent always goes through houdry serve.

Same-laptop smoke (control plane already up):

houdry node list --server https://127.0.0.1:8080
houdry job submit gpu.smoke --server https://127.0.0.1:8080 --wait
houdry route --prompt "Say hello in one sentence." --execute --wait --server https://127.0.0.1:8080

OpenAI-shaped API

Agent and any OpenAI SDK use:

POST https://HOST:8080/v1/chat/completions

model=auto runs the router. A named model pins that model. GET /.well-known/houdry.json identifies a discovered host.

Trust the local CA (--cacert or SSL_CERT_FILE):

curl --cacert "$HOME/.houdry/server/pki/root_ca.crt" \
  https://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"auto\",\"messages\":[{\"role\":\"user\",\"content\":\"Say hello\"}]}"

Useful paths on the same host:

PathRole
GET /Cluster dashboard
GET /healthzLiveness
GET /.well-known/houdry.jsonLAN identity (no token)
POST /v1/chat/completionsChat
GET /v1/modelsModel list
GET /files/Generated artifacts

Windows notes

irm https://github.com/houdry-genomex/houdry/releases/latest/download/install.ps1 | iex
& "$HOME\.houdry\bin\houdry.exe" gpu detect
& "$HOME\.houdry\bin\houdry.exe" serve --listen 0.0.0.0:8080

Next