For ML & computer-vision builders

Build labeled image datasets in the field.

TagSet collapses the tedious capture → sort → upload chore into one fast loop on your phone. Photos land in your own cloud storage, sorted into folder-per-label datasets that ML tooling reads out of the box.

Coming soon to the App Store See how it works ↓
Capture Label Upload

iOS in App Store review · Android coming soon · Free

TagSet label picker, switching the active label while capturing
TagSet capture screen with a tap-to-capture button

One tap. Labeled. Uploaded. Next.

Pick an active label and every shot is captured, tagged, queued, and pushed to your bucket. You stay in a rhythm and collect hundreds of samples without ever leaving the camera.

  • Speed mode auto-uploads to the active label for bulk collection
  • A local queue tracks every capture, so failures stay visible and retryable
  • Optional Wi-Fi-only uploading to save mobile data

Lands in your bucket, ready to train.

Every label becomes a folder. No re-sorting, no rename scripts, no glue code. The layout TagSet writes is exactly the layout torchvision, keras, and friends expect.

from torchvision.datasets import ImageFolder

ds = ImageFolder("dataset/")
ds.classes
# ['cardboard', 'glass', 'metal',
#  'organic', 'paper', 'plastic']
Cloudflare R2 bucket showing one folder per label: cardboard, glass, metal, organic, paper, plastic
Your bucket on Cloudflare R2, with one clean folder per label.

Up and running in three steps

TagSet cloud storage settings showing endpoint, bucket, keys, and region
1

Connect your bucket

Paste an endpoint, bucket, and keys. Works with Cloudflare R2, Amazon S3, MinIO, Backblaze B2, Wasabi, or anything else that speaks S3. Test the connection and you're set.

TagSet labels screen where each label maps to a folder
2

Add your labels

Define the classes you're collecting. Each label maps to a folder name in your bucket, and you can rename or reorder them anytime.

TagSet capture screen
3

Shoot

Point, tap, pick a label, done. The capture uploads and you're ready for the next one. Go collect your dataset in the real world.

Your data, your storage. We don't have servers.

🔑 Credentials stay on device

Your storage keys live in the iOS Keychain / Android Keystore. They are never sent to us, because there is no “us” to send them to.

🛰️ Uploads go straight to you

Images travel directly from the app to your bucket. Nothing passes through a TagSet backend, because we run none.

🔓 No lock-in

It's just files in a bucket you already own. Cancel the app tomorrow and your dataset is still sitting there, in plain folders.

🙈 We collect nothing

No accounts, no analytics SDKs, no tracking. Read the privacy policy. It's short, because there's almost nothing to say.

Start building your dataset.

TagSet is finishing App Store review. Email us and we'll tell you the day it's live.

Coming soon to the App Store Notify me at launch