openlabel
v0.4.0
Published
Local-first image annotation studio. Runs entirely in your browser; start it with `npx openlabel`.
Maintainers
Readme
openlabel
Local-first image annotation studio. Runs entirely in your browser. No account, no server, no upload.
npx openlabelThat's it. It serves the app on port 4173 and opens your browser. If 4173 is taken, it moves to the next free port and prints the URL. Your projects live in that browser's IndexedDB, so come back to the same URL.
Options
Usage: openlabel [options]
openlabel update [--check] [--yes]
-p, --port <n> Port to listen on (default: 4173, else the next free one)
--host <h> Host to bind (default: 0.0.0.0, so paired devices can reach it;
use 127.0.0.1 to keep it on this machine only)
--no-open Do not open the browser
-v, --version Print version
-h, --help Print this helpServe to other machines on your network:
openlabel --host 0.0.0.0 --port 4173Each browser origin keeps its own data, so a second machine gets its own projects. That is the model, not a bug.
Install it as a command
npx caches the package after the first run, so later starts are instant. To
get a permanent openlabel command:
npm install -g openlabel
openlabelThe -g flag is required. Without it, npm links the binary into the local
node_modules/.bin, which your shell does not see.
Updating
openlabel updateThis asks the npm registry for the newest release, prints what it found, and
installs it with npm install -g openlabel@<version> after one confirmation.
openlabel update --check reports without installing, and --yes skips the
question for scripts. A running openlabel keeps serving the old code until it
is restarted. If the package was installed by a package manager other than npm,
or without -g, run the install command the update prints instead.
Ports
The app prefers 4173. If that port is busy, it steps forward until it finds a free one and prints the URL it chose. Projects are stored per origin, so use the same port to reopen earlier work; free 4173 if you want the data saved there.
Why not Docker?
npx openlabel needs Node ≥ 20 on the host and is the fastest way to try the
tool. Use the Docker image when the
host has no Node runtime, or when the app must be pinned and audited as an image
(air-gapped / regulated environments).
