1. Create a key
In Compute → Keys, name a key and choose what it reaches: one of your networks, or the community pool. The key is shown once; store it in a file only you can read.
echo 'hwk_…' > ~/.hetero/network.key && chmod 600 ~/.hetero/network.key
export HETERO_HUB=https://gethostwatch.com/api/compute/hub
export HETERO_HUB_TOKEN_FILE=~/.hetero/network.key2. Get a model
The coordinator needs the model’s checkpoint; the machines get the layers they compute from it.
hetero pull qwen3:4b # Qwen/Qwen3-4B from the Hugging Face Hub, every file checked
hetero pull qwen3:0.6b # a small model of the family drafts for the large one
hetero pack qwen3:0.6b # its Q8 pack: a faster draft on a Mac3. Run it across the network
hetero run qwen3-4b-hf --across all \
--serve-model 0.0.0.0:7950 --model-advertise MY-ADDRESS --allow-from MY-ADDRESS--across all takes every machine of the key’s network that is online, not paused, inside its hours and lending model stages; name machines instead to pick some. --serve-model lets machines without the model fetch their layers from this one, at the address they reach it by; --allow-from is that same address as the stages see it, the only one they accept. The coordinator keeps the ends of the model on its GPU — a Mac’s, or a graphics card through WebGPU (--device gpu) — and drafts with a smaller model of the family when it has one.
4. Or serve it
hetero serve --model qwen3-4b-hf --across all --serve-model 0.0.0.0:7950 \
--model-advertise MY-ADDRESS --allow-from MY-ADDRESSThe server listens on 127.0.0.1:11435 with OpenAI’s API at /v1 (chat and completions, streamed, tools, thinking) and Ollama’s at /api, so the ollama command and its clients work against it. Another listening address needs an API key.
curl -s localhost:11435/v1/chat/completions \
-d '{"model": "qwen3-4b-hf", "messages": [{"role": "user", "content": "Hello"}]}'
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3-4b-hfThe queue’s API
Workers and coordinators speak the same job API as a Hostwatch agent’s queue, under /api/compute/hub/api/v2: submit, lease (waiting for work up to 25 seconds), renew, fail and complete jobs, read and write their files. Machine credentials (hwm_…) lease and report; network keys (hwk_…) submit and read. GET /api/v2/compute/machines lists what a key reaches.