Skip to content
Weaveweave / fleet
Install Fleet
Docs/Anywhere/More machines

More machines

Run Fleet sessions on other computers. Make a machine reachable, add it from Settings, and keep a node running without the web app.

Every machine runs its own Fleet. Each keeps its own sessions, repositories, worktrees and harness sign-ins. A session stays on the machine it started on. From one Fleet you can add other machines, see all their sessions in the sidebar, and work in one machine at a time.

Fleet listens only on 127.0.0.1 by default, so nothing else can reach it. Both options below assume your devices can already reach each other, for example over Tailscale.

Terminal window
fleet --host 0.0.0.0 --port 2113

On anything other than loopback, Fleet asks every request for its access token. Open the /login?token=… link Fleet prints at startup once, and the browser remembers the sign-in. On a tailnet, --host <the machine's 100.x address> listens only there.

Terminal window
fleet --port 2113 --require-token
tailscale serve --bg --https=443 http://127.0.0.1:2113

This gives the machine a real certificate on https://<machine>.<tailnet>.ts.net. HTTPS certificates must be switched on for the tailnet. --require-token is required. Without it, every device on the tailnet would be signed in automatically.

Use HTTPS when the page you’re on is HTTPS. A browser won’t let an https:// page call an http:// machine.

Settings → Machines → This machine shows the token and the addresses other devices can use. Fleet keeps the token between restarts. Replace token locks out every device that has the old one. Setting WEAVE_FLEET_AUTH_TOKEN (16 characters or more) fixes the token instead.

The token lets whoever holds it do anything Fleet can, including reading files, running agents and opening terminals. Treat it like a password.

  1. On the other machine, start Fleet as above. Note its address and token.
  2. In Fleet, open Settings → Machines and choose Add a machine.
  3. Paste the machine’s URL and its token. Fleet checks both before saving them.

The list lives on the machine that served the page, so every browser on it and its paired phones see the same machines.

The sidebar groups sessions by machine. The machine you’re working in is live, and its Settings, Automations and Workflows are the ones you see. Choose a session on another machine and that machine becomes live. The page reloads so nothing carries over. A machine that stops answering keeps its last rows, dimmed and marked unreachable.

An automation can run on another machine in your list. Pick it with the Machine chip under the automation’s box.

A machine that only does the work, such as a server, doesn’t need Fleet’s web app. Start it as a node:

Terminal window
fleet node --host 0.0.0.0 --port 2113

A node has no web app, and it asks for the token on every request. At startup it prints its addresses and token. Add it from another Fleet with Add a machine. It takes --host, --port, --data-dir and --profile, like fleet. A node can’t pair a phone itself. Pair the phone with the Fleet that has the node in its list.

fleet node install-service keeps the node running: now, when you log in, and after a crash. It takes the same options as fleet node.

Terminal window
fleet node install-service --host 0.0.0.0 --port 2113
System What it installs
Linux a systemd user service, fleet-node.service
macOS a LaunchAgent, io.tryweave.fleet-node
Windows a scheduled task named Fleet node
  • It runs as you, so harness sign-ins and git credentials work as in your shell.
  • On a Linux machine nobody logs in to, also run loginctl enable-linger "$USER", or it stops when you log out.
  • If the full Fleet runs on the same machine, add --profile node so the node has its own data directory.
  • --print shows what it would write and run, and changes nothing.
  • fleet node uninstall-service stops the node and removes the service. Its data stays.