Offline-first image annotation app for Android
Create datasets, annotate objects, assign labels, and sync to a remote backend — all from your device.
Labely is a mobile app for creating and annotating image datasets directly on your Android device. Import images from your gallery or capture them with your camera, draw annotations, assign labels, and store everything locally — with optional sync to a remote backend.
- Dataset Projects — Create and manage self-contained dataset projects on your device
- Image Import — Capture photos via camera or pick from gallery
- Image Gallery — Browse your dataset images in an adaptive grid layout
- Annotation Tools — Draw rectangles, squares, circles, and polygons on images
- Label Management — Create, assign, and switch label classes on any annotation
- Resolution-Independent — Annotations render correctly on any screen size or zoom level
- Fully Offline — Everything works without an internet connection
- Automatic Sync — Changes sync to your remote backend automatically when you're back online
- No Data Loss — Failed network requests never affect your local data
- Image Deduplication — Duplicate images are detected and prevented automatically
- Responsive UI — Works on all Android screen sizes
Open Image → Choose Tool → Draw Annotation → Assign Label → Save
- Open an image from your project gallery
- Select an annotation tool (Rectangle, Square, Circle, Polygon)
- Draw on the image
- Tap Assign Label to pick or create a label
- Your annotation saves immediately
- Tap Save & Sync when you're done
Download and install the latest APK on your Android device:
Enable "Install from unknown sources" in your device settings if prompted.
Requires Android 5.0 (Lollipop) or higher.
Labely requests the following permissions:
| Permission | Why |
|---|---|
| Camera | Capture photos for your datasets |
| Storage / Media | Access and store images and project files |
- All your data is stored locally on your device
- Annotations, labels, and images work fully without internet
- When you connect a remote backend, changes queue locally and sync automatically on reconnect
- A failed sync never causes data loss — it retries on its own
This project is open source under the MIT License.