Skip to content

Repository files navigation

OpenLabel

https://kinncj.github.io/OpenLabel/

Browser-only YOLO detection dataset annotator. No backend, no accounts, no upload. Your images stay on your machine — everything lives in IndexedDB.


What it does

  • Draw, move, and resize bounding boxes on images
  • Assign classes from built-in presets (COCO, VOC, LVIS, Open Images, xView, …) or define your own
  • Mark boxes as TP / FP / ignore for review workflows
  • Export a zip: dataset.ndjson + YOLO txt labels + data.yaml + optional Label Studio JSON
  • Re-import that zip losslessly — review states, z-order, and colors survive the round-trip
  • Auto-splits train/val if you forget

Quick start

npm install
npm run dev # http://localhost:3000
npm run build # static export → out/

Serve the out/ folder from any static host (GitHub Pages, Netlify, a local python -m http.server).


Preset class packs

PackClassesDomain
COCO-8080Everyday objects
VOC-2020PASCAL VOC benchmark
Objects365365Large-scale everyday
Open Images V7601Google broad categories
LVIS1203Long-tail fine-grained
VisDrone-1010Drone footage
xView-6060Satellite imagery
Global Wheat1Spike detection
Brain Tumor2Medical MRI
African Wildlife4Buffalo / elephant / rhino / zebra
Signature1Document signatures
Medical Pills1Pill detection

Keyboard shortcuts

KeyAction
19Select class
Delete / BackspaceDelete selected box
Scroll wheelZoom
Middle-click dragPan
Drag empty areaPan

Export format

export.zip
├── dataset.ndjson ← canonical, training-safe
├── data.yaml ← Ultralytics-compatible
├── images/{train,val,test}/
├── labels/{train,val,test}/ ← YOLO txt (one file per image)
├── labelstudio.json ← optional Label Studio JSON
└── meta/project.json ← round-trip UI metadata

Only tp (true-positive) boxes go into dataset.ndjson and YOLO txt. fp and ignore boxes are kept in meta/project.json only — they never contaminate training data.


Stack

ConcernLibrary
FrameworkNext.js 15 (App Router, static export)
LanguageTypeScript strict
StateZustand 5
PersistenceDexie 4 (IndexedDB)
ValidationZod 3
Zip I/Offlate 0.8
CanvasSVG (inline)
TestsVitest 2 + Playwright

Docs


License

AGPLv3 — see LICENSE

About

Browser-only YOLO detection dataset annotator. No backend, no accounts, no upload. Your images stay on your machine — everything lives in IndexedDB.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages