A desktop app for labeling image datasets for computer vision. Organize work into Projects → Tasks → Samples, and annotate images with bounding boxes or polygon masks in a canvas-based labeler with pan/zoom and per-label colors.
Built with Electron, React, and TypeScript. Data is stored locally in SQLite by
default, behind an IDataStore interface designed to be swapped for other backends
(e.g. an HTTP-based store) without touching any UI code.
$ pnpm install$ pnpm run dev# For windows
$ pnpm run build:win
# For macOS
$ pnpm run build:mac
# For Linux
$ pnpm run build:linuxComponent and utility tests, run with Vitest + React Testing Library:
$ pnpm run testFull app tests driven by Playwright, launching the real
built Electron app (page objects live in e2e/pages/):
$ pnpm run test:e2eElectron has no headless mode, so this opens real windows while it runs. On Linux CI
(see .github/workflows/ci.yml), that's handled by running under Xvfb rather than by
hiding the window, since Electron/Chromium throttle rendering for hidden windows, which
makes tests slower and flakier, not faster.
Pull requests and pushes to master run both test suites via GitHub Actions
(.github/workflows/ci.yml). master is protected, so changes go through a PR and are
squash-merged.