Get started

Installation

What the installer does, installer options, where files live, building from source and uninstalling.

One-line install

curl -fsSL https://boat-annotation.com/install.sh | sh

The installer is a short POSIX shell script; you can read it at /install.sh before running it. It:

  1. Checks the platform: Ubuntu 22.04 or 24.04 on x86_64, or macOS on Apple silicon. Anything else stops with a clear message.
  2. Finds the latest GitHub release (or the version you pin).
  3. Downloads boat_<version>_<platform>.tar.gz and verifies its SHA-256 checksum.
  4. Verifies the archive's Sigstore signature with cosign, which ships in the release, against the project's release workflow identity.
  5. Installs boat to ~/.local/bin and the signature verifier to BOAT's tools directory.

It never needs root, and by default it only writes inside your home directory.

Installer options

Set these environment variables for the sh side of the pipe:

Variable Default Purpose
BOAT_VERSION latest Install a specific version, e.g. 1.2.0
BOAT_CHANNEL stable Use beta to install the newest pre-release
BOAT_INSTALL_DIR ~/.local/bin Where the boat binary goes
BOAT_HOME unset Keep the whole installation under one directory (see below)
curl -fsSL https://boat-annotation.com/install.sh | BOAT_CHANNEL=beta sh

Requirements

  • macOS: Apple silicon. Models use Metal (MPS) or the CPU.
  • Linux: Ubuntu 22.04 or 24.04 on x86_64. An NVIDIA GPU is recommended for models but not required. BOAT selects CUDA 12.6, CUDA 12.8 for Blackwell GPUs, or CPU automatically.
  • curl, plus sha256sum on Linux or shasum on macOS. These are preinstalled on supported systems.
  • Disk space for the models you install. Weights range from about 0.5 GB to 8 GB per tag.

Local disk only. SQLite must live on a local disk. Network filesystems, multiple backend instances and multiple Uvicorn workers are not supported.

Where files live

BOAT follows the XDG base directory convention:

Purpose Default location Contents
Config ~/.config/boat config.toml, secrets.env
Data ~/.local/share/boat App versions, runtimes, database, projects, model packages
State ~/.local/state/boat Logs, backups, run files
Cache ~/.cache/boat Downloads

Set BOAT_HOME=/path/to/boat to keep everything under one directory instead. It then contains config/, data/, state/ and cache/. The standard XDG_*_HOME variables are respected too.

Build from source

Development installs need Python 3.11, Node.js 20+, npm, Go 1.24+ and FFmpeg.

git clone https://github.com/young-kwng/BOAT-annotation-tool.git
cd BOAT-annotation-tool
./dev_install_label_tool.sh
./dev_build_label_tool.sh
source ./dev_activate.sh
boat start

dev_activate.sh puts the development binary first on your PATH and isolates all configuration, data, models, logs and caches under .dev/home. It never replaces a release CLI in ~/.local/bin. Source it again in each new shell.

Update

boat update --check   # see whether a newer release exists
boat update           # back up, install, validate and switch

boat update stops the service, takes a coordinated backup, installs the new version and starts it once to validate database migrations. If any step fails, the previous version is restored automatically. If something looks wrong afterwards, boat rollback --yes restores the pre-update backup.

Uninstall

boat uninstall

This removes the runtime but keeps your data. To delete everything, including projects, models, logs and configuration:

boat uninstall --purge-data --yes --confirm-purge=DELETE

Finally, delete the binary: rm ~/.local/bin/boat.

↑↓ navigate↵ open