A donor machine lends the coding agent it is already signed in to. A consumer machine borrows it and runs that agent in its own terminal, in its own working directory. The relay in between is this project: the thing that matches them, carries the terminal, and keeps the record of what was used.
Three things, and nothing else:
There is no marketplace, no artifact hosting, no net disk, no agent storefront and no chat widget in the corner. It is a console for an operator who wants to know which machines are lending, which are borrowing, and whether any of it is working.
tar xzf tinybox-network-0.5.477-swallowed.tar.gz
cd tinybox-network-0.5.477-swallowed
cp config.example.json config.json # edit domain, port, data dir
cd server && npm ci --omit=dev
AMERC_CONFIG=../config.json AMERC_PORT=5320 \
AMERC_DATA_DIR=/var/lib/tinybox-network node app.js
Open it, create the first administrator at /setup, and hand out an invitation
code. Put a TLS terminator in front of it. The deployment manual
has the proxy block, the systemd unit, federation, and what to do when a donor reads BAD.
Sign in, open TinyBox → Donor (or Consumer), and copy the single line it shows. The address carries that account's own token, so nothing has to be typed into the machine — which is what makes it usable over SSH on a box nobody is sitting in front of.
curl -fsSL 'https://<your node>/donor.sh?k=<token>&config=claude' | sh
irm 'https://<your node>/donor.ps1?k=<token>&config=claude' | iex
It installs the package, starts the donor's supervisor — which keeps the binary up to date from the node by itself — and prints the pid, the folder, the log, and how to stop it.
Give every node the same federation.serverKey and list them all in
federation.peers. Each node then advertises its own donors to the others, and a
consumer elects the node that answers it fastest.
| Node | Address | Where |
|---|---|---|
| tbx-us | tinybox.chuade.com | United States |
| tbx-cn | tinybox.lessokaji.com | China |
The two are one network: each sees the other's donors, and a consumer that reaches either one can be served by capacity on the other.
The relay never holds anyone's provider credentials. A donor lends its own login, in place, on its own machine; a session can refresh it, and a session that signs it out signs it out. That is a trust boundary, not a file permission, and it belongs with who you lend to.