All comparisons
Comparison

cvat vs label-studio: video and 3D annotation versus multi-type labeling

CVAT Community is a self-hosted computer vision platform built around video, 3D point clouds and QA workflows; Label Studio is a lighter Django application for text, audio, image, video and time series labeling. They overlap on images and video, but the rest of each tool points at a different team.

Published October 9, 2026

At a glance

Projectcvat-ai/cvatHumanSignal/label-studio
LicenceMITPermissive: commercial use allowedApache-2.0Permissive: commercial use allowed
MaintenanceCommits in the last six monthsLast push October 9, 2026Commits in the last six monthsLast push October 9, 2026
LanguagePythonTypeScript
GitHub stars16,89928,436
Read moreOur analysisGitHubOur analysisGitHub

Which one to choose

cvat

Choose cvat if your data is video, image sequences or 3D point clouds, if you need task and job assignment with review and consensus checks, and if you can run a Docker Compose stack with PostgreSQL, Redis and ClickHouse on your own hardware.

label-studio

Choose label-studio if you label several data types in one place, if a pip install or a single Docker container is the right size for your team, and if you accept owning the database, the storage and the upgrade path.

What each project is actually built for

CVAT Community is the free, self-hosted edition of the CVAT annotation platform. Its README describes image, video and 3D annotation, dataset management, team collaboration, cloud storage integration, SDKs and APIs, and states that the platform is the foundation of CVAT Online and CVAT Enterprise. The repository ships the source and deployment assets for that self-hosted edition, and the README says several features shown in the paid editions are not in this repository. That framing matters: CVAT Community is one edition of a commercial product line, not a standalone tool.

Label Studio is an open source Django application for labeling audio, text, images, videos and time series with export to model formats. Its README lists local Docker, Docker Compose with Nginx and PostgreSQL, pip, poetry, Anaconda and a local development path, plus one-click deployment on Heroku, Microsoft Azure and Google Cloud Platform. There is no commercial split inside the repository in the same way; the README points to a hosted Starter Cloud edition and a comparison page for editions, but the open source project is the whole application.

The practical difference is the centre of gravity. CVAT is organised around visual data: projects, tasks and jobs, with annotation types such as bounding boxes, polygons, masks, keypoints, cuboids and tags on images, video and 3D point clouds. Label Studio is organised around a labeling configuration you write in XML, which decides what the interface shows for whatever data type you feed it. Our analysis of label-studio says the first thing to verify before committing is that the label configuration you need can be expressed in that XML labeling config. If it cannot, the tool does not bend.

Architecture: a multi-container vision stack versus one Django app

CVAT Community runs as a Docker Compose stack. The README's default path is git clone, docker compose up -d, then a manage.py createsuperuser command inside the cvat_server container. Our analysis of cvat says the stack includes PostgreSQL, Redis and ClickHouse, and that alternative deployments exist through docker-compose.external_db.yml and the helm-chart directory. Those three data stores are not incidental; they are what the task, job, review and analytics features are built on. ClickHouse in particular is the kind of dependency you notice when you size a machine or plan a backup.

Label Studio's default container is much smaller. The README's Docker command mounts a host directory at /label-studio/data and states that the generated assets, including the SQLite3 database label_studio.sqlite3 and uploaded files, land in that directory. For production the README offers a Docker Compose script with Label Studio, Nginx and PostgreSQL, and a further Compose file that adds MinIO for local S3 storage. The pip path is one command, pip install label-studio, followed by label-studio to start the server on port 8080.

The consequence is that Label Studio can be running in minutes on a laptop with no external services, while CVAT Community assumes you are prepared to operate a multi-container system. Neither approach is wrong, but the starting cost and the failure surface differ. A single container with SQLite has one thing to back up. A Compose stack with PostgreSQL, Redis and ClickHouse has several, and our analysis of cvat says you should decide before committing whether you need the external database file or the Helm chart, because that decision shapes the rest of your deployment.

Getting each one running

CVAT Community's prerequisites are Docker Engine, Docker Compose and Git. After docker compose up -d, you create the first account with docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser', then open http://localhost:8080 or your CVAT_HOST. The README notes that CVAT is primarily tested with Chromium-based browsers, that Firefox may work with caveats, and that Safari and WebKit are not supported. That browser constraint is a real deployment item if your annotators use Macs, because it means Chrome or Edge on every workstation.

Label Studio's README gives more install routes than CVAT's. Docker pull and run is the shortest; Docker Compose adds Nginx and PostgreSQL; pip, poetry and Anaconda each have a documented sequence. The pip path requires Python 3.10 or newer. The local development path installs dependencies with poetry, runs manage.py migrate and manage.py collectstatic, then starts manage.py runserver. If you want to test S3 behaviour without cloud credentials, the Compose file with MinIO exists for that, with the caveat that you may need a hosts file entry so both the app and your browser can reach MinIO.

The asymmetry is worth stating plainly. Label Studio meets a small team where it is, including on a single machine with SQLite. CVAT Community asks for the full stack on day one, and the README points to separate installation and deployment guides for OS-specific setup, AWS, Kubernetes, external PostgreSQL, backups and upgrades. If nobody on the team wants to read those guides, CVAT Community is the wrong first choice regardless of its annotation features.

Operations, scaling and what you own

With CVAT Community you own the whole stack. The README lists analytics through Grafana dashboards for user activity, working time by job, events and server logs, and quality control through review, consensus comparison, Ground Truth and Honeypot checks via the server API. Those features imply a database you can query and keep available. Scaling means scaling PostgreSQL, Redis and ClickHouse together with the application containers, and our analysis of cvat says the trade-off of the community edition is exactly that several features shown in the paid editions are not in this repository.

With Label Studio you own the database, the storage and the upgrades. Our analysis of label-studio puts it that way, and adds the specific operational cost: the pinned Django and djangorestframework versions in pyproject.toml. An upgrade that crosses those pins is the part of the stack that costs time. That is a different kind of maintenance from CVAT's, where the hard part is keeping several services healthy; here the hard part is a Python dependency graph that moves under you.

Storage is the other shared burden. CVAT Community's README lists cloud storage integration for S3, Azure and Google Cloud, and export and import in more than 20 formats including COCO, YOLO, Pascal VOC and KITTI. Label Studio exports to various model formats and can use MinIO or S3-compatible storage. In both cases the data lives where you put it, and neither project removes the need for a backup plan. The difference is that CVAT's default Compose deployment already commits you to database services, while Label Studio lets you start with a file in a mounted directory and move to PostgreSQL later.

Where each one falls short

CVAT Community's clearest limitation is the edition split. The README places several capabilities in the paid editions rather than this repository, and our analysis of cvat names built-in SAM 2 or SAM 3 auto-labeling, SSO and the quality control UI as examples that the README assigns to CVAT Online paid plans and CVAT Enterprise. The README does describe connecting your own ML models for detection, segmentation and tracking, so auto-labeling is possible, but it is your model and your integration. If you expected the paid product's feature list from the MIT-licensed repository, you will be disappointed.

The browser constraint is a second, smaller limitation. Safari and WebKit are not supported, and Firefox may work with caveats. Teams with a mixed device fleet should treat that as a rollout requirement rather than a footnote.

Label Studio's limitations are the mirror image. It is general by design, which means depth in any single modality is bounded by what the XML labeling config can express. Our analysis of label-studio says you should not adopt it if you expect a hosted service with no operations work, or if your labeling volume is small enough that a spreadsheet and a folder of files would do. The second half of that is worth taking seriously: the tool is not free in effort, only in licence, and a small project can spend more time on the server than on the labels.

Neither project is a managed service. CVAT Online and CVAT Enterprise exist for teams that want one, and Label Studio's README points to a Starter Cloud edition. Choosing the self-hosted repository is choosing to run something.

Licence and maintenance implications

CVAT Community is MIT-licensed, and the README notes that some serverless assets and dependencies may carry separate licences. That is the permissive end of the spectrum, and it matters if you plan to modify the code or ship it inside a product. The repository was last pushed on 26 September 2026 and is not archived, and the recent releases listed for it run through v2.74.1 on 1 September 2026, so the project is being worked on now.

Label Studio is Apache-2.0 licensed, which is also permissive but adds an explicit patent grant and, for some organisations, a different review path than MIT. Its repository was last pushed on 25 September 2026 and is not archived. Its release list is more uneven: a nightly build on 10 September 2026, then 1.23.0 on 13 March 2026 and 1.22.0 on 19 December 2025. That pattern is consistent with a project that ships continuously from a main branch and tags stable releases less often, and it is worth checking which of those you intend to run in production.

The licence difference is unlikely to decide the choice for most teams; both are permissive. The maintenance difference is also small on the evidence of last push dates, since both repositories were pushed within days of each other in September 2026. The real difference is what maintenance means in each case: for CVAT Community, tracking a multi-container stack and the edition boundary; for Label Studio, tracking Python dependency pins and the release cadence you choose.

Choosing for a concrete scenario

A team annotating dashcam video with bounding boxes and tracking, running on internal GPUs, needs CVAT Community. Video and 3D annotation, jobs and review workflows, and the ability to connect your own detection or tracking model are the features the README describes, and the Compose stack fits a team that already runs PostgreSQL. The same team should not pick Label Studio for that workload unless the video annotation it needs fits comfortably inside an XML labeling config.

A research group labeling interview transcripts, audio clips and a few hundred images for a classifier is better served by Label Studio. One pip install or one container, SQLite in a mounted directory, and a labeling config that describes the task is a shorter path than standing up ClickHouse for a dataset that will never be large. Our analysis of label-studio says to verify that the config you need is expressible, that PostgreSQL and object storage are reachable from the app container, and that you have a tested path across the Django and djangorestframework pins.

A team that needs both is not unusual, and the two can coexist. Label Studio can handle text and audio while CVAT handles video and point clouds, with exports landing in the same dataset pipeline. That is more operational surface, not less, so it only makes sense when the modality split is real and stable.

Finally, a team that wants no operations work at all should look at the hosted editions both projects offer rather than either repository. The open source code is the right answer for teams whose data cannot leave their infrastructure, and the wrong answer for teams hoping the licence fee is the only cost.

Bottom line

Pick CVAT Community when the data is visual, the annotation is video or 3D, and you have someone who will run a Docker Compose stack with PostgreSQL, Redis and ClickHouse. Pick Label Studio when you label several data types, the team is small, and a pip install or one container matches your scale. Before committing, verify the edition boundary in CVAT Community against the features you actually need, and verify your label configuration and Django pin upgrade path in Label Studio. If neither verification passes, the hosted editions exist for exactly that reason.

Sources

  1. cvat-ai/cvat repository
  2. cvat-ai/cvat README
  3. HumanSignal/label-studio repository
  4. HumanSignal/label-studio README