What a machine can lend
| Machine | Lends | Stage |
|---|---|---|
| Mac with Apple silicon | Its GPU and unified memory, and its CPU | Metal (hetero-stage), CPU (hetero-stage-cpu) |
| PC with a graphics card | The card’s memory, on Windows or Linux | WebGPU through Vulkan or DX12 (hetero-stage-gpu) |
| Any Linux, macOS or Windows machine | Processor and RAM; in a container, its memory limit | The portable CPU kernels (hetero-stage-cpu) |
1. Build the worker
The worker is part of weavatrix-hetero, built from source with Rust (rustup.rs). During the beta its repository is shared with participating organizations: ask Support for access. On a Mac the Metal stage needs Xcode’s command-line tools; on a PC the card’s Vulkan or DX12 driver; on Windows the MSVC build tools.
git clone https://github.com/Weavatrix/weavatrix-hetero.git
cd weavatrix-hetero
cargo build --release -p hetero-jobs -p hetero-cpu -p hetero-gpu -p hetero-cli
# On a Mac, the Metal stage too:
cargo build --release -p hetero-qwen --features heteropack --bin hetero-stageThe binaries land in target/release: hetero-worker beside the stages it starts, and hetero, the CLI.
2. Create a join code
In Hostwatch, open Compute, choose the network and how long the code lives (15 minutes, an hour or a day), and create it. Owners and admins of the organization can do this; the code joins exactly one machine and is shown once.
3. Run the command it shows
target/release/hetero-worker \
--hub https://gethostwatch.com/api/compute/hub \
--join ABCD-EFGH-JKLM \
--token-file ~/.hetero/compute.token \
--models ~/.hetero/modelsThe worker writes the machine’s credential to --token-file (readable by its owner only), then keeps running. The machine appears on the Compute page within seconds, lending half its power. Leave it running under launchd, systemd or a Windows service; on a restart, leave out --join.
Useful options: --name to name the machine, --listen-host 0.0.0.0 --advertise ADDRESS when coordinators reach it on another interface (a container, a VPN), --port-base 7811 for fixed ports to open in a firewall.
In a container
docker run -d --name hetero-worker --cpus 4 --memory 8g -p 7811:7811 \
-v /opt/hetero:/opt/hetero:ro -v hetero-state:/state \
debian:trixie-slim /opt/hetero/hetero-worker \
--hub https://gethostwatch.com/api/compute/hub --join ABCD-EFGH-JKLM \
--token-file /state/compute.token --models /state/models \
--listen-host 0.0.0.0 --advertise HOST-ADDRESS --port-base 7811The worker reads the container’s memory limit and CPU quota, so a share of it is a share of what the container may use.
4. Choose its share
On its card, set the power share, which backends lend and how much memory, its hours, the jobs it takes, and whether it joins the community pool. Every setting →
Remove a machine
Remove it from its card. Its credential stops working at once, its running jobs end, and the worker stops. To bring it back, create a new code.