🚀 Join the waitlist now! waitlist.floot.dev
LogoFlootdocs

update

Update the Floot CLI itself, however you installed it.

Terminal
floot update

Takes no flags. It is the same command on every install channel, so any message that asks you to update names this one command and never has to know how you installed. What happens behind it depends on the channel.

Installed withfloot update does
The install scriptDownloads the latest release for your machine, checks its checksum and replaces the binary in place.
pub.devUpdates itself through pub.dev.
HomebrewOffers to run brew upgrade floot.
ScoopOffers to run scoop update floot.

The CLI knows its channel because the install stamps it into the binary. You never pass it.

Install script

floot update fetches the newest release for your platform, checks the archive against the checksum that release publishes, and replaces the running binary atomically. If the checksum does not match, nothing is installed.

It reports Checked for updates, then Updated to <version> with the version it installed. When you are already current it prints CLI is already at the latest version. and stops.

pub.dev

floot update asks pub.dev for the latest floot_cli and, if yours is older, runs the global activation for you. It prints the same lines as the install script, including the one for when there is nothing to do.

Homebrew and Scoop

A package manager owns the binary it installed. Replacing that binary from the outside leaves the manager pointing at a file that is no longer there, so on these channels floot update never replaces anything. It prints the manager's own command and, when a terminal is attached, offers to run it:

Terminal
This CLI was installed with Homebrew, which owns the binary.
Update it with brew upgrade floot
Run it now?

On Scoop the second line reads Update it with scoop update floot. Answer yes and the manager's command runs in your terminal; answer no, or run without a terminal, and floot update exits successfully having changed nothing. If the manager's command fails, floot update reports it and exits with code 69:

Terminal
brew upgrade floot exited 1. Run it yourself to see what it reported.

When it refuses

floot update refuses in two cases, and in both the only safe answer is to reinstall. It never guesses, because overwriting a binary that a package manager owns corrupts that manager's records. Both exit with code 69.

The package manager is missing. The binary was installed by Homebrew or Scoop, but that manager is not on your PATH now, so only it could replace the binary:

Terminal
This CLI was installed with Homebrew, which is not on your PATH, so only Homebrew can replace it. Reinstall it with: brew install floot-dev/floot/floot

For Scoop the message names Scoop and ends with scoop install floot.

The channel is missing or unknown. The binary carries no install stamp, or a stamp this version does not recognise, so nothing can be inferred about how it got there:

Terminal
This CLI cannot tell how it was installed, so it will not replace itself. Reinstall it with: curl -fsSL https://floot.dev/install.sh | sh

On Windows the message ends with irm https://floot.dev/install.ps1 | iex instead.

When your CLI is too old

Floot can require a minimum CLI version, for security fixes and protocol changes. The check happens when the CLI calls Floot, so a CLI below that floor is refused on its next online call, and exits with code 69. A run that never reaches Floot, such as an offline create from a cached release, does not meet it:

Terminal
This Floot CLI is older than this server supports. Run `floot update` and try again.

The instruction is always floot update, whatever the channel, so it is always one command. A kit that needs a newer CLI than yours says the same:

Terminal
Kit 1.4.0 needs a newer Floot CLI. Run `floot update`.

The update notice

After any other command, the CLI compares its version with the latest one published on pub.dev and, if there is a newer one, prints a notice as the last thing in the run, so it never interrupts a prompt:

Terminal
Update available! 1.1.0 → 1.2.0
Run floot update to update

The command in the second line is your channel's own: brew upgrade floot under Homebrew, scoop update floot under Scoop.

No notice with --offline

A run that carries --offline makes no network call at all, so it skips this check too.

On this page