Skip to content

Day 1 for hosts

You have a machine with an NVIDIA card and want to add it to a pool. This page is everything you need for the first day: what the machine needs, the one command, how to tell it worked, and how to take it out again. The deeper reference is Bootstrap contract.

What your machine needs

Needs Checked by the installer?
Operating system Linux, x86_64 or arm64. macOS joins but cannot train or serve (no CUDA). WSL is untested. no
GPU An NVIDIA card, Pascal (GTX 10xx) or newer. Several cards in one machine are used together. no - detected when the node starts
VRAM 4 GB per card is the floor: the leader places work only on cards with about 4 GB free (SWARM_PLACEMENT_MIN_GPU_FREE_GB). Two 4 GB GTX 1050 Ti and two 6 GB GTX 1660 SUPER serve Qwen3-14B together. the self-test, after joining
NVIDIA driver nvidia-smi must work. The installer takes PyTorch 2.4-2.6 from PyPI, a CUDA 12 build, which needs driver 525 or newer (550 or newer recommended). no
Python 3.11 or newer, with venv (on Debian/Ubuntu: apt install python3-venv), plus curl and tar. yes, first thing
Disk About 10 GB for the Python environment and PyTorch, plus the models you hold: a stage of a 14B model in 4 bits is 3-5 GB in the Hugging Face cache. no
Network Outbound HTTPS to the leader and to PyPI. Nothing has to reach in: no port forwarding, no VPN of your own. -
Account No root. Everything installs into ~/.silent-swarm as your user. -

Check the two things the installer does not:

on your GPU machine
nvidia-smi                # lists your cards and the driver version
python3 --version         # 3.11 or newer

Join with one command

  1. Sign in, open your pool (Pools on the dashboard) and press Add a node. Tick Join as a standby if the machine should only step in when another one fails.
  2. Copy the command. It looks like this and is valid for one hour:

    on your GPU machine
    curl -fsSL -H "X-Bootstrap-Token: <token>" https://<leader>/api/v1/bootstrap/fellow.sh | bash -s -- \
      --leader-url https://<leader> --session-id <session> --token <token>
    

    Anyone holding it can add a machine to your pool until it expires, so do not paste it anywhere public. 3. Run it on the GPU machine, as your normal user.

Want to read the script first? Add --dry-run to see the six steps without running them, or follow Read before you run to download it, check its checksum and read it before running it. Either way, the script refuses plain HTTP and checks the code it downloads against the checksum the leader publishes.

The first run takes a few minutes, most of it installing PyTorch.

What "ready" looks like

In the terminal, the installer counts six steps and ends with:

[bootstrap] step 6/6: starting fellow process
[bootstrap] fellow started successfully with pid=12345
[bootstrap] log_file=/home/you/.silent-swarm/logs/fellow.out

The node now runs in the background; you can close the terminal.

On the pool page, under Nodes, the machine appears within a few seconds:

  • Status goes to Ready: it is connected and idle. Training means it is working on a run; Offline means the leader has not heard from it for about 15 seconds.
  • Role starts as Probation while the node runs its self-test: it allocates most of each card's free memory and checks a computation whose answer is known. When that passes, the role becomes Active (or Standby). See Admission, checkout and availability.
  • The Grade fills in over the next hours, from uptime, speed and errors.

Your profile shows what your machine contributed: GPU-hours online, tokens served and requests answered.

On the machine itself:

on your GPU machine
fellow logs --attach      # follow the node's log (Ctrl+C to stop following)
fellow jobs               # recent training events

If fellow is not found, add ~/.local/bin to your PATH (the installer says so when it is missing).

Day-to-day

  • You need the GPU back for a while: fellow checkout --in 15m moves the node's work elsewhere before then without losing a step, and nothing new is placed on it. fellow checkin gives it back. It does not hurt the grade.
  • After a reboot the node starts by itself (a systemd unit, or an @reboot line in your crontab). fellow autostart status shows which, and fellow autostart off stops that; installed with --no-autostart, or before this existed, run fellow restart after a reboot or fellow autostart on once.
  • Updates come from the leader: an admin runs swarm update and every idle node reinstalls itself from the leader's current code. On the machine, fellow update does the same.
  • Stop for now: fellow stop. The node shows as Offline until you start it again with fellow restart.

Leaving

To take the machine out for good, on the machine:

on your GPU machine
fellow purge

It stops the node and deletes everything the installer put there: the code, the Python environment, the config with its token, the logs, the userspace mesh and the fellow command; it also removes the firewall rules the installer added (only if you joined with --allow-from). Models downloaded through Hugging Face stay in ~/.cache/huggingface; delete that folder too if nothing else on the machine uses it.

The pool shows the node as Offline from then on. A pool admin can also do this from the leader side (swarm release --fellow-id <id> --purge-install), which works even while the machine is offline: it is purged when it next connects.

When something goes wrong

  • Python 3.11 or newer is required: install a newer Python (python3.12 is picked up automatically) and run the command again.
  • The node shows Offline right after joining: fellow logs shows why; most often PyTorch cannot see the card (nvidia-smi fails, or the driver is older than 525).
  • Probation does not end: the self-test failed, usually because another program holds the card's memory. The pool page's role menu offers Run its self-test again.
  • The command says the session expired: commands live one hour; press Add a node again.

More in Troubleshooting. And if something on this page was wrong for your machine, Send feedback in the app's sidebar reaches the people running the pool.