Point your webcam, perform a gesture, and capture labelled samples — no code, no cloud. Here's everything it can do.
Gesto Labeller is a desktop app that turns your webcam into a gesture-dataset recorder. You define the gestures you care about, capture examples of each, and it saves clean, training-ready landmark data to your disk. Think "Teachable Machine for gestures" — but offline, with no account and no upload.
The data it produces feeds directly into the gesto Python package, which trains and runs the actual recognition models.
.npy files. Nothing is uploaded.Pick a region and give it a name.
One per gesture you want to recognise.
Perform each gesture at your webcam.
Point gesto at the project folder.
The Projects screen is your home base. Each project is a self-contained dataset with its own region, classes, and samples.
gesto train command.The Annotate tab is where recording happens. Select a class, start the camera, perform the gesture, and press Capture (or the space bar).
The most important choice when capturing — it must match the nature of your gesture.
One frame per sample — the gesture is a held shape. Needs little data and detects instantly.
Use for: hand signs, alphabet letters, a thumbs-up, a posture or stance.
A short clip of frames — the gesture is defined by movement. Needs more data and captures change over time.
Use for: waving, clapping, a swipe, jogging.
A region decides which body landmarks are tracked. You pick it when creating the project.
| Region | Tracks | Good for |
|---|---|---|
One hand | 21 hand joints | Single-hand signs, letters |
Two hands | Both hands | Two-handed gestures |
Pose | Full body, 33 points | Postures, body poses |
Legs | Lower body, 8 points | Stances, foot positions |
Full | Body + both hands | Whole-body + hand gestures |
The Explore tab shows every sample you've captured as a grid of skeleton previews, filtered by class. It's how you check the quality of your data and clean it up.
Counts update live across the app as you add, relabel, or remove samples.
The Classes tab manages the gestures in your project — one class per gesture.
The Export tab packages your whole project — classes, region, and every annotation's landmark data — into a single re-importable .json file. One file to back up, move, or share a dataset.
For training, you don't even need to export: gesto reads the project folder directly.
Gesto Labeller is released as a free Community Edition. It's built with PySide6 (Qt for Python) under the LGPL, and ships with a third-party notices file listing its components. The companion gesto Python package is MIT-licensed.
Once you've captured a dataset, the gesto Python package turns it into a working model:
pip install gesto gesto train static hands_one "C:\...\gesto_projects\my-signs" gesto detect static hands_one
See the full documentation for training options, live detection, and running models in your own code.