Documentation menu
CLI Reference

pals join

Join an existing swarm by bootstrapping off one or more peer multiaddrs.

$ pals join [OPTIONS] [MODEL] [-- run_server_args...]

What it does

Brings up a server on your machine that joins an existing swarm. You’ll need a multiaddr from the operator (looks like /ip4/HOST/tcp/PORT/p2p/PEER_ID) and to have already redeemed your invite with pals login.

Anything after -- is forwarded verbatim to run_server (underscore-style flags).

Arguments

model
TEXT (optional)
HuggingFace model id (must match the swarm’s). Falls back to config.default_model.

Options

--peer
TEXT (repeatable)
Multiaddr of a swarm peer to bootstrap from. Repeat the flag for multiple bootstrap peers. Falls back to config.default_peers.
--port, -p
INTEGER
Listen port. 0 means auto-assign.
Default: 0
--device
TEXT
Torch device: cuda, cpu, mps, or cuda:N.
--num-blocks, -n
INTEGER
Number of transformer blocks to host on your machine. Default: as many as fit.
--public
Bind on all interfaces so off-machine peers can reach you.
--identity
TEXT
Path to a libp2p identity key. Default: from config.
--invite-token
TEXT
Invite token. Passed through the env var, never argv. Falls back to config.invite_token.
Env: PROGRESSPALS_INVITE_TOKEN
--config-dir
TEXT
Read config from this directory.

Examples

The common case — one bootstrap peer:

join
$pals join meta-llama/Llama-3.1-8B \
--peer /ip4/HOST/tcp/PORT/p2p/PEER_ID
✓ joined swarm · holding layers 15–47

Multiple bootstrap peers for resilience:

multi-peer
$pals join meta-llama/Llama-3.1-8B \
--peer /ip4/HOST_A/tcp/PORT/p2p/PEER_A \
--peer /ip4/HOST_B/tcp/PORT/p2p/PEER_B
Model id must match. pals join doesn’t verify the swarm hosts the same model; you have to pass the right id. Ask the operator if unsure.