MONAI Label: A Server-Client Annotation Loop for Medical Imaging
MONAI Label is an intelligent open source image labeling and learning tool.
At a glance
- What is it?
- MONAI Label pairs a Python annotation server with viewer plugins for 3D Slicer, OHIF, QuPath, CVAT and Digital Slide Archive, so that a model suggests a segmentation and the annotator corrects it. The design is opinionated and the fit is narrow: it is for teams that already have a MONAI-compatible model and a viewer they can extend.
- Who is it for?
- Adopt MONAI Label if you annotate radiology or pathology volumes and already have a MONAI model to plug in; skip it if you need a hosted, browser-only labeling service with no local server. Before committing, verify that your target viewer plugin is current, that the monaibundle model you need appears in its supported list, and that your data can be staged in the layout the sample app expects.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
Who MONAI Label Is Actually Built For
The README frames the problem as a gap: developers build annotation applications, and the clinicians, technologists and annotators who need them cannot easily use what comes out. MONAI Label is the connective tissue between the two. The project describes itself as a server-client system for interactive medical image annotation that runs locally on a machine with one or more GPUs, with server and client allowed to sit on the same or different machines. That sentence carries the whole positioning. This is not a hosted labeling platform. It is software you install, point at your own imaging data, and run next to your own GPU. The intended user on the model side is a researcher or developer comfortable with Python and MONAI. The intended user on the annotation side is a radiologist or pathologist working inside 3D Slicer, OHIF, QuPath, CVAT, MITK or Digital Slide Archive. If neither of those descriptions fits your team, the tool is probably the wrong shape.
The Server-Client Split and What Crosses the Wire
The architecture is a labeling server plus viewer-side plugins. The README states that application developers build labeling apps in a serverless way, where custom labeling apps are exposed as a service through the MONAI Label Server. Read that carefully: serverless here means the developer does not stand up separate infrastructure per app. The MONAI Label Server is the single process that hosts whatever app you load. The viewer plugin talks to that server, and the server owns the model, the datastore and the training loop. Two consequences follow. First, the annotation client is thin; the intelligence lives on the server side, which is why the same server can back 3D Slicer for radiology and QuPath for pathology. Second, latency and connectivity matter. If the annotator's viewer cannot reach the server, there is no labeling. The README also lists PACS connectivity via DICOMWeb, which means images need not be copied to local disk before annotation, though the documentation does not spell out the full DICOMWeb request flow in the material available here.
Model Families and the Supported Matrix
The supported matrix splits by field. Radiology covers Segmentation, DeepGrow, DeepEdit and SAM2 in 2D or 3D, with 3D Slicer, MITK and OHIF as viewers, NIfTI, NRRD and DICOM as data types, and CT and MRI as modalities. Pathology covers DeepEdit, NuClick, Segmentation, Classification and SAM2 in 2D, with Digital Slide Archive, QuPath and CVAT as viewers. Endoscopy appears in the feature list with CVAT and an automated active learning workflow. The README is explicit that this table lists only what the maintainers have explicitly tested and that it does not mean your dataset or file type will fail. That is an honest caveat and also a warning: the matrix is a starting point, not a contract. Model coverage beyond the built-in apps comes through the monaibundle sample app, which the README points to for whole body segmentation, whole brain segmentation, lung nodule detection, tumor segmentation and similar tasks. Check that page before assuming a specific model is available.
Getting a Server Running: Install, App, Viewer
The README lays out five steps: installation, sample applications, supported viewers, data preparation, then starting the server and annotating. The package is distributed on PyPI as monailabel, so installation is a pip install against that name, and the homepage documentation covers the environment specifics. The sample applications live under sample-apps in the repository, with monaibundle called out by name as the app that exposes Model Zoo integrations. The viewer plugins live under plugins, with slicer, ohif, qupath, dsa and cvat as the directories named in the README. Data preparation comes before server startup, which tells you the server expects data to already be in place rather than discovering it. The README does not reproduce the exact server launch command in the excerpt available, so consult the getting started documentation for the current invocation and its flags. What is clear from the layout is the ordering: install the Python package, pick or write an app, install the matching viewer plugin, stage your data, then start the server.
Where the Design Costs You
The active learning loop is the selling point and also the source of operational weight. The README describes continuous learning from user interactions and data, and an automated active learning workflow for endoscopy via CVAT. Continuous learning means the server holds state: a datastore, a model that gets updated, and a training process that competes for the same GPU the inference path uses. On a single-GPU workstation, annotation and retraining are not free of each other. There is also a versioning question. The releases listed are 0.8.3 in July 2024, 0.8.4 in October 2024, and 0.8.5 dated October 2023, which is out of order relative to the others. That ordering is odd enough that you should confirm which release is actually current before pinning a version in a clinical or research pipeline. The viewer plugins are separate deliverables with their own release cadence, so a server upgrade can leave a plugin behind. None of this is disqualifying, but it means MONAI Label is infrastructure you maintain, not a tool you install once.
How It Differs from a Plain Annotation Tool
The obvious comparison is a general-purpose labeling platform such as CVAT used on its own. CVAT is one of MONAI Label's own supported viewers, which makes the contrast concrete. Running CVAT alone gives you a browser-based annotation interface with no model in the loop: a human draws every contour from scratch, and the tool has no opinion about your imaging modality. MONAI Label inverts that. The server proposes a segmentation, DeepGrow or DeepEdit style, and the annotator's job becomes correction rather than creation. The trade is real. You take on a Python server, a GPU, a model you must select and possibly fine-tune, and a plugin that has to stay in sync. In exchange, the annotation effort per case drops when the model is already reasonable on your data. If your task is small, one-off, or has no pretrained model that transfers, the model-in-the-loop machinery adds setup cost without returning anything. For a large, repetitive segmentation workload in CT, MRI or pathology, the calculus flips.
Licence, Maintenance and Upgrade Surface
MONAI Label is Apache-2.0, the same licence as MONAI itself, and the README header carries the standard Apache notice. For most commercial and research use that is a permissive starting point, but the licence covers the code, not the weights. Models pulled in through monaibundle come from Model Zoo and may carry their own terms, and that is the thing to check before any deployment where model provenance matters. This is not legal advice; read the licence files that ship with the specific model you load. On maintenance, the upgrade surface is wide: the Python package, the server app you wrote or adapted, the viewer plugin, and the model weights can each move independently. The release history shown here is thin, with three releases across roughly a year and one date that does not sort correctly, so treat version pinning as a deliberate step rather than a default. Budget for the fact that a plugin update and a server update are two separate events.
Editorial conclusion
Adopt MONAI Label if you annotate radiology or pathology volumes and already have a MONAI model to plug in; skip it if you need a hosted, browser-only labeling service with no local server. Before committing, verify that your target viewer plugin is current, that the monaibundle model you need appears in its supported list, and that your data can be staged in the layout the sample app expects.
Community notes