libreyolo label

Starts a local web tool for drawing and editing bounding boxes. It writes LibreYOLO-native label files, so a dataset annotated here trains with no conversion step.

Command
libreyolo label
Output
A server URL on stdout; labels written as labels/*.txt beside the images

Synopsis

bash
libreyolo label [data=<dataset.yaml|folder>] [key=value ...]

Arguments are key=value pairs, and POSIX form works too, so port=9200 and --port 9200 are the same argument.

Arguments

ArgumentDefaultMeaning
dataDataset YAML or folder to open directly. Starts on the project home when unset
host127.0.0.1Host or interface to bind
port8000Port to bind. Bumps to the next free one if taken
deviceautoDevice for AI auto-label: 0, cpu, mps, auto
no_assistfalseDisable AI auto-label, leaving a manual labeler
no_browserfalseDo not auto-open the browser
sharefalseBind on 0.0.0.0 so teammates on your network can join
jsonfalseJSON output to stdout
quietfalseSuppress stderr
verbosefalseVerbose stderr output

Examples

Basic
# Opens the project home; pick or create a dataset in the browser.libreyolo label
Manual only, fixed port
libreyolo label no_assist=true port=9200 no_browser=true
Let teammates join
libreyolo label share=true

Notes

What it writes

Boxes are saved as LibreYOLO-native labels/*.txt files, which is the format libreyolo train reads, so nothing has to be converted afterwards. This version handles bounding boxes only. Edits save as you move between images.

Opening a dataset

With no data, the tool starts on the project home and a dataset is chosen or created from the browser. Passing data=path/to/data.yaml opens that dataset straight away, and the startup line reports the image count, the class count, and whether the dataset is writable. A read-only dataset still opens and says why it cannot be written to.

Sharing, and what host does

share=true binds the wildcard address, which lets other machines on your network reach the tool while administrative actions, switching or deleting projects and starting compute, stay on this machine.

Setting host to a specific interface does something different and less safe: the host becomes indistinguishable from a network client, so every client gets administrative rights. The command prints a warning on stderr when you do it. Prefer share=true.

Ports and shutdown

An occupied port moves to the next one, up to twenty past the request. Failing all twenty exits with io_error. The URL printed on stdout is the port that was actually bound. With share=true, the result also carries lan_url, the address teammates should open.

The command serves in the foreground until Ctrl+C.

Related: libreyolo doctor to check the labeled dataset before training, and libreyolo train to train on it.

Verified against LibreYOLO v1.5.0.