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:
- Checks the platform: Ubuntu 22.04 or 24.04 on x86_64, or macOS on Apple silicon. Anything else stops with a clear message.
- Finds the latest GitHub release (or the version you pin).
- Downloads
boat_<version>_<platform>.tar.gzand verifies its SHA-256 checksum. - Verifies the archive's Sigstore signature with
cosign, which ships in the release, against the project's release workflow identity. - Installs
boatto~/.local/binand 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, plussha256sumon Linux orshasumon 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.