rf-detr migration check: flags Ultralytics YOLO (AGPL-3.0) ties in requirements.txt, pyproject.toml, environment.yml, Dockerfiles and Python code, with the Apache-2.0 RF-DETR line for each. Runs entirely in your browser — nothing is uploaded.
Same engine as the VS Code extension, byte for byte.
Scan every repo in the workspace and export a dated migration plan per repo, each Ultralytics tie mapped to its RF-DETR line; a team key adds a CI gate
One payment, one licence key for this tool. The key is shown right after payment.
Ultralytics' own pricing page: the Pro plan is $29 per seat a month and still AGPL-3.0; only the Enterprise plan, priced "Custom", includes the commercial Enterprise License.
Buy the full version — $29· ReadyStack
Real numbers from this tool, line by line.

Six Ultralytics YOLO ties turned up in a 12-line Dockerfile that a machine-learning engineer shipping a closed-source shelf-camera service checked before moving to RF-DETR: four errors and two warnings.
The ultralytics package and its YOLO models are licensed AGPL-3.0. Ultralytics' licence page is direct: "An Enterprise License is required if you want to use Ultralytics YOLO without open-sourcing your entire project." Its list includes internal business tools, any commercial product, SaaS APIs that use YOLO behind the scenes, and edge devices, robots and cameras. It covers "the complete Ultralytics YOLO source code portfolio, including YOLO26, earlier YOLO versions".
There is no list price. The pricing page shows the Enterprise plan as "Custom". The Pro plan costs $29 per seat a month and is still AGPL-3.0, so it does not make a closed product compliant.
| Line | Ultralytics line | RF-DETR fix | Severity |
|---|---|---|---|
| 2 | FROM ultralytics/ultralytics:8.3.40-cpu | FROM python:3.12-slim | error |
| 5 | pip install ultralytics==8.3.40 | pip install rfdetr | error |
| 6 | git clone …/ultralytics/yolov5 | pip install rfdetr, drop the clone | error |
| 7 | ADD …/yolo11n.pt | RFDETRMedium(), Apache-2.0 weights | warning |
| 8 | yolo export … format=onnx | RFDETRMedium().export() | warning |
| 9 | pip install yolov5==7.0.13 | pip install rfdetr | error |
The four errors put Ultralytics code into the image: the base image, the ultralytics install, the cloned yolov5 repository and the yolov5 package. The two warnings are lines you rewrite once the dependency goes: the yolo11n.pt weights and the yolo export step, which calls the ultralytics command-line tool.
A dependency licence scanner reads installed packages. It sees ultralytics, but not the base image, the cloned folder, a torch.hub.load call that downloads the repository at runtime, or a weights file fetched with ADD. A chatbot rewrites the Dockerfile you paste, but rarely knows that RF-DETR is not one licence: Nano, Small, Medium and Large are Apache-2.0, while the XL and 2XL models and the rfdetr_plus extension are PML 1.0.
rf-detr Migration Check reads Dockerfiles, requirements.txt, pyproject.toml, environment.yml, setup files and Python code against 9 rules: the ultralytics package, the yolov5 package, ultralytics/* base images, cloned or git-installed Ultralytics repos, torch.hub.load of Ultralytics repos, ultralytics imports, YOLO weights files, the yolo command, and RF-DETR sizes under PML 1.0. Each finding names the line, the RF-DETR fix and the source. The fixed Dockerfile returns 0 findings.
The file itself changes the answer. A pyproject.toml that declares license = "AGPL-3.0-only" gets the same ultralytics line as an info finding, not an error, because the free licence allows it when the complete source is published. A detect.py already on RFDETRXLarge gets a warning pointing to RFDETRLarge.
Start with the base image and the pip installs, since they decide what ships, then swap the imports and retrain on RFDETRMedium or RFDETRLarge.
The single-file check is free in VS Code and on the web page, with every rule and every fix. The paid version scans every repo in a workspace and exports a dated migration plan per repo; a team key adds a CI gate that fails a build adding new Ultralytics use.
rf-detr Migration Check reads Dockerfiles, requirements.txt, pyproject.toml, environment.yml, setup files and Python code, and flags every line that ties a project to Ultralytics YOLO: the ultralytics and yolov5 packages, ultralytics/* base images, cloned Ultralytics repos, torch.hub.load calls, imports, the yolo command and YOLO weights files. Each finding shows the RF-DETR replacement line and the source page.
It is for machine-learning engineers and CTOs who ship closed-source computer-vision products, internal tools, SaaS back ends or edge cameras on Ultralytics YOLO. Ultralytics states that an Enterprise License is required to use Ultralytics YOLO without open-sourcing the entire project. It also suits teams already on RF-DETR who need to confirm they use only the Apache-2.0 model sizes.
pip freeze and dependency licence scanners list the ultralytics package, but not the ultralytics/* Docker base image, a git-cloned yolov5 folder, a torch.hub.load call or a downloaded yolo11n.pt weights file. A chatbot rewrites the file you paste, yet it rarely knows that RF-DETR XL and 2XL models are PML 1.0 rather than Apache-2.0.
The free version runs all 9 rules on the open file in VS Code and on the web page, with the RF-DETR fix on every finding and no cap. The paid version, $29 once with one licence key per person or team seat, scans every repo in the workspace and exports a dated migration plan per repo; a team key adds a CI gate.
Ultralytics publishes no list price for its Enterprise License: the pricing page shows the Enterprise plan as Custom. Its Pro plan costs $29 per seat a month and is still AGPL-3.0, so it does not cover a closed product. RF-DETR Nano, Small, Medium and Large are Apache-2.0. The single-file check here is free.
One question, answered by the person who built it. Your email only if you want the answer sent.