Skip to main content

Package manager installs

If you installed floe via a package manager, use the standard upgrade command for that tool. floe update detects a package-managed install from the binary’s path and stops with a message pointing you at the right command, rather than replacing the binary behind your package manager’s back. The same guard applies to floe update --check. Detection is a substring match for homebrew, cellar, linuxbrew, scoop, or winget anywhere in the binary’s path, so a script install that happens to live under a directory containing one of those words is treated as package-managed too.
This page covers the floe command-line tool. Floe Desktop updates on its own track: the Microsoft Store build updates itself, while the GitHub .exe and .zip builds (0.2.3 and later) show a daily update notice but never install anything, so you download and run the current build again. floe update never touches the desktop app, and desktop builds ship on their own desktop-v* tags as GitHub pre-releases, so they are never picked up by floe update or the install scripts. See Update Floe Desktop.

Script and manual installs

Run the built-in update command:
Terminal
This checks the latest release on GitHub, downloads the correct archive for your OS and architecture, verifies the SHA-256 checksum, and replaces the running binary in place. On macOS and Linux, if floe lives in a root-owned directory such as /usr/local/bin (the install script’s default), the final swap needs elevation, so floe asks for your sudo password once. Everything before that step (download, checksum, extraction) runs as your normal user. If sudo is not installed, the update stops and tells you to re-run as root or reinstall with the install script. On Windows no elevation is involved: floe renames the running executable aside and moves the new one into place. To check for an update without installing:
Terminal
You can also re-run the original install script at any time to upgrade:
Terminal

The update hint

When a newer release exists, floe version prints an extra line:
Output
Only floe version runs this check automatically, never send or receive. The result is cached for 24 hours in floe/update-check.json inside your user config directory (~/.config on Linux, ~/Library/Application Support on macOS, %AppData% on Windows), so deleting that file forces a fresh check. floe update --check is a separate, deliberate check: it asks GitHub directly and ignores the cache. Set FLOE_NO_UPDATE_CHECK=1 to suppress the hint entirely. Binaries compiled from source never check.

Version compatibility

You do not need to match versions with the person on the other end. Floe peers on different releases interoperate, so a small version difference is never a problem. In the rare case a release changes the transfer protocol in a breaking way, Floe detects it before any data moves and tells whichever side is older to update. See Protocol versioning for the details.