Install
You’ll install fleetd with one command. It works the same on every machine.
curl -fsSL https://fleetd.sh | shIn a terminal, the installer then starts the setup wizard, fleetd init. Continue with Quick start.
Requirements
Section titled “Requirements”| Needed on | Notes | |
|---|---|---|
| macOS (Apple silicon or Intel) or Linux x64 | every machine | The desktop app needs macOS 12 or newer. On an older Mac the installer stops without changing anything; install the CLI only with --no-app. |
claude CLI |
every machine that runs agents | Agents run through it. Its Claude account is the hub’s API key, your subscription, or the machine’s own claude auth login: the Claude setup step. |
git |
the hub | |
gh CLI, logged in |
the hub, only without the hub’s GitHub App | fleetd opens and merges pull requests through the hub’s own GitHub App, which an admin creates on Settings › Hub accounts › GitHub; without one, through gh. |
fleetd init checks each one and prints the install command for anything missing.
What gets installed
Section titled “What gets installed”| What | Where |
|---|---|
| The CLI | ~/.fleetd/bin/fleetd, linked from ~/.local/bin/fleetd |
| The desktop app | ~/Applications/fleetd.app |
| What | Where |
|---|---|
| The CLI | ~/.fleetd/bin/fleetd, linked from ~/.local/bin/fleetd |
| The desktop app (only with a display) | ~/.local/share/fleetd/app/fleetd-desktop.AppImage, with an entry in your app menu |
- The installer needs no
sudo. - Every download is checked against the release’s
SHA256SUMS. - Running it again replaces what it installed.
- Only
fleetd initsets up services. - The desktop app updates itself. Installed over an earlier fleetd app, it replaces it and keeps its pairing.
To read the script first, open fleetd.sh/install.sh.
Options
Section titled “Options”Pass options after sh -s --:
| Option | Does |
|---|---|
--app |
Install the desktop app on Linux even without a display. |
--no-app |
Install the CLI only. |
--no-init |
Install, but don’t start the setup wizard. |
--join <url> --code <code> |
Install, then join that hub as a worker instead of starting the wizard. Takes --machine-id, --git-identity and --rejoin too. fleetd pair --worker prints this command; see Add a machine the hub can’t reach. |
--uninstall |
Remove the CLI and the app. See Updating & uninstall. |
For example, to install without the wizard:
curl -fsSL https://fleetd.sh | sh -s -- --no-initExpected output:
fleetd: installed the CLI: ~/.fleetd/bin/fleetdfleetd: installed the app: ~/.local/share/fleetd/app/fleetd-desktop.AppImage (menu entry: ~/.local/share/applications/fleetd-desktop.desktop)
Next, run: fleetd initCheck the install
Section titled “Check the install”fleetd versionExpected output:
fleetd Edge · Oct 26, 10:56 UTC · 1b563d7 (0.0.0-edge.202610261056+1b563d7, protocol 1)If your shell can’t find fleetd, add ~/.local/bin to your PATH:
export PATH="$HOME/.local/bin:$PATH"Build from source
Section titled “Build from source”With a Rust toolchain:
git clone https://github.com/unlaboredlabs/fleetdcd fleetdcargo build --release --locked -p fleetdThe CLI is target/release/fleetd. Copy it to ~/.local/bin/fleetd, or run it from there. A worker you add with
fleetd machine add gets a copy of the hub’s binary, so build once on the hub. Building the desktop app is covered in
CONTRIBUTING.
Already have a fleet on this machine?
Section titled “Already have a fleet on this machine?”To try fleetd next to a fleet you already run, don’t run the installer’s wizard. Follow Run a second fleet on one machine instead.