Ultralytics YOLO27: Join the waitlist.
Get Started

Command Line Interface#

The Ultralytics command line interface (CLI) provides a straightforward way to use Ultralytics YOLO models without writing Python code. The CLI supports running every task and mode directly from the terminal using the yolo command.



Watch: Mastering Ultralytics YOLO: CLI
Example

Ultralytics yolo commands use the following syntax:

yolo TASK MODE ARGS

Where:

  • TASK (optional) is one of [detect, segment, semantic, depth, classify, pose, obb]
  • MODE (required) is one of [train, val, predict, export, track, benchmark]
  • ARGS (optional) are any number of custom arg=value pairs like imgsz=320 that override defaults.

See all ARGS in the full Configuration Guide or with yolo cfg.

Where:

  • TASK (optional) is one of [detect, segment, semantic, depth, classify, pose, obb]. If not explicitly passed, YOLO will attempt to infer the TASK from the model type.
  • MODE (required) is one of [train, val, predict, export, track, benchmark]
  • ARGS (optional) are any number of custom arg=value pairs like imgsz=320 that override defaults. For a full list of available ARGS, see the Configuration page and default.yaml.
Warning

Arguments must be passed as arg=val pairs, separated by an equals = sign and delimited by spaces between pairs. Do not use -- argument prefixes or commas , between arguments.

  • yolo predict model=yolo26n.pt imgsz=640 conf=0.25 ✅
  • yolo predict model yolo26n.pt imgsz 640 conf 0.25 ❌
  • yolo predict --model yolo26n.pt --imgsz 640 --conf 0.25 ❌

Train#

Train YOLO on the COCO8 dataset for 100 epochs at image size 640.

Example

Start training YOLO26n on COCO8 for 100 epochs at image size 640:

yolo detect train data=coco8.yaml model=yolo26n.pt epochs=100 imgsz=640

Val#

Validate the accuracy of the trained model on the COCO8 dataset. A custom model reuses its training data when data is omitted; official weights fall back to the task default coco8.yaml.

Example

Validate an official YOLO26n model:

yolo detect val model=yolo26n.pt data=coco8.yaml

Predict#

Use a trained model to run predictions on images.

Example

Predict with an official YOLO26n model:

yolo detect predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'

Export#

Export a model to a different format like ONNX or CoreML.

Example

Export an official YOLO26n model to ONNX format:

yolo export model=yolo26n.pt format=onnx

Available Ultralytics export formats are in the table below. You can export to any format using the format argument, e.g., format='onnx' or format='engine'.

Formatformat ArgumentModelMetadataArguments
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/✅imgsz, quantize, batch, device
IMX500imxyolo11n_imx_model/✅imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/✅imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/✅imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/✅imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

nms=None defaults to raw outputs for external NMS (YOLO26 keeps its NMS-free head on Axelera). Set nms=False to select an available NMS-free head; unsupported formats fall back to their native output path. The nms entries above identify formats that can embed NMS with nms=True.

See full export details on the Export page.

Overriding Default Arguments#

Override default arguments by passing them in the CLI as arg=value pairs.

Tip

Train a detection model for 10 epochs with a learning rate of 0.01:

yolo detect train data=coco8.yaml model=yolo26n.pt epochs=10 optimizer=SGD lr0=0.01

Overriding Default Config File#

Override the default.yaml configuration file entirely by passing a new file with the cfg argument, such as cfg=custom.yaml.

To do this, first create a copy of default.yaml in your current working directory with the yolo copy-cfg command, which creates a default_copy.yaml file.

You can then pass this file as cfg=default_copy.yaml along with any additional arguments, like imgsz=320 in this example:

Example
yolo copy-cfg
yolo cfg=default_copy.yaml imgsz=320

Solutions Commands#

Ultralytics provides ready-to-use solutions for common computer vision applications through the CLI. The yolo solutions command exposes object counting, cropping, blurring, workout monitoring, heatmaps, instance segmentation, VisionEye, speed estimation, queue management, analytics, Streamlit inference, zone-based tracking, region counting, security alarms, and parking management — see the Solutions page for the full catalog. Run yolo solutions help to list every supported solution and its arguments.

Example

Count objects in a video or live stream:

yolo solutions count show=True
yolo solutions count source="path/to/video.mp4" # specify video file path

For more information on Ultralytics solutions, visit the Solutions page.

FAQ#

  • To train a model using the CLI, execute a single-line command in the terminal. For example, to train a detection model for 10 epochs, run:

    yolo train data=coco8.yaml model=yolo26n.pt epochs=10

    This command uses the train mode with specific arguments. For a full list of available arguments, refer to the Configuration Guide.

  • The Ultralytics YOLO CLI supports various tasks, including detection, segmentation, semantic segmentation, depth estimation, classification, pose estimation, and oriented bounding box detection. You can also perform operations like:

    • Train a Model: Run yolo train data=<data.yaml> model=<model.pt> epochs=<num>.
    • Run Predictions: Use yolo predict model=<model.pt> source=<data_source> imgsz=<image_size>.
    • Export a Model: Execute yolo export model=<model.pt> format=<export_format>.
    • Use Solutions: Run yolo solutions <solution_name> for ready-made applications.

    Customize each task with various arguments. For detailed syntax and examples, see the respective sections like Train, Predict, and Export.

  • To validate a model's accuracy, use the val mode. For example, to validate a pretrained detection model with a batch size of 1 and an image size of 640, run:

    yolo val model=yolo26n.pt data=coco8.yaml batch=1 imgsz=640

    This command evaluates the model on the specified dataset and provides performance metrics like mAP, precision, and recall. For more details, refer to the Val section.

  • You can export YOLO models to various formats including ONNX, TensorRT, CoreML, TensorFlow, and more. For instance, to export a model to ONNX format, run:

    yolo export model=yolo26n.pt format=onnx

    The export command supports numerous options to optimize your model for specific deployment environments. For complete details on all available export formats and their specific parameters, visit the Export page.

  • Ultralytics provides ready-to-use solutions through the solutions command. For example, to count objects in a video:

    yolo solutions count source="path/to/video.mp4"

    These solutions require minimal configuration and provide immediate functionality for common computer vision tasks. To see all available solutions, run yolo solutions help. Each solution has specific parameters that can be customized to fit your needs.

Comments28

Ask a question, share your results, or help someone else.

  1. Lishiquan12Lishiquan12GitHub

    Usage: yolo [OPTIONS] COMMAND [ARGS]... Try 'yolo -h' for help.

    Error: No such command 'detect'. why?

    1
    1. Glenn JocherGlenn JocherUltralytics

      嘿!看起来你在尝试使用 detect 命令,但这实际上并不直接作为命令使用。😅 在YOLOv8 CLI中,detect 更像是一个任务类型标识符,而不是直接使用的命令。

      比如说,如果你想要对一张图片进行预测(检测),你可以这样做:

      yolo detect predict model=yolov8n.pt source='path/to/image.jpg'

      这里 detect 指出你想要进行的是物体检测任务,predict 是你想要进行的模式,接着是模型和图像源的具体参数。🔍

      确保检查 Ultralytics YOLO 文档 获取更多详细信息和参数选项!希望这有助于解决问题!

    2. Glenn JocherGlenn JocherUltralytics

      看起来你遇到了 'yolo detect' 是无效命令 的问题。 😊 对于YOLOv8 CLI的用法, 实际上你不需要直接使用 "detect" 作为命令。以下是一个简单的例子,演示如何正确地使用 CLI 来运行一个预测:

      yolo predict model=yolov8n.pt source='path/to/your/image.jpg'

      在这个例子中,我们使用 predict 而不是 detect,然后指定模型和要进行预测的数据源。希望这能帮助到你!如果还有其他疑问,欢迎继续提问。👍

  2. UserUser

    Hello Team Ultralytics,

    Good morning!

    Many thanks for the great work.

    Couple of questions:

    1. How can i generate same graphs (graphs after training) after using the trained model on my unsense samples data?
    2. I can use the target folder after training the model, however, it only exports the images with the prediction boxes. I want to have a pie chart or bar chart or even the same plots it exports after the training run
    3. For the object detection via a video, if i have 4 images to display in one second, the model looks the same image multiple times. How can we correct the frames reading?

    Looking forward to your kind input,

    Kind regards,

    MUK

  3. duoerkuduoerkuGitHub

    你好,进一部沟通请联系15680550171, 或者添加微信 BK-Mike

    1. Glenn JocherGlenn JocherUltralytics(edited)

      @yizhihuo666 好问题!当你更新到最新版本的Ultralytics库时,不指定模型时使用的默认模型会随版本更新(现在检测任务默认为 yolo26n.pt)。这就是为什么你的原始命令会提示下载新的默认模型文件。

      如果你想继续使用YOLOv8模型,可以显式指定模型路径:

      yolo train model=yolov8n.pt data=your_data.yaml epochs=100

      如果你想使用最新的YOLO26模型(推荐),可以直接使用:

      yolo train model=yolo26n.pt data=your_data.yaml epochs=100

      YOLO26提供了更好的性能和准确性,所以建议升级到新模型。

      @duoerku 请在GitHub上提出具体的技术问题,我们会在这里为你提供支持,无法提供私人联系方式。

    2. yizhihuo666yizhihuo666GitHub

      Thank you for your reply. As you mentioned, the system has now been updated to the YOLOv11 algorithm. I would like to know how I should proceed if I want to train the yolov8n.pt model using the YOLOv8 algorithm. Do I need to revert to a previous version of Ultralytics?

    3. Glenn JocherGlenn JocherUltralytics(edited)

      @yizhihuo666 You don't need to downgrade Ultralytics! The current version still fully supports YOLOv8 models. Simply specify the YOLOv8 model explicitly in your command:

      yolo train model=yolov8n.pt data=your_data.yaml epochs=100

      The latest Ultralytics version supports both YOLOv8 and YOLO26 models - it just defaults to the current default model (yolo26n.pt for detection) when no model is specified. By explicitly using model=yolov8n.pt, you'll train with the YOLOv8 architecture as intended.

  4. yizhihuo666yizhihuo666GitHub

    May I ask which algorithm is used by default for training through the ultralytic command line, YOLOV8 or YOLOV11

    1. yizhihuo666yizhihuo666GitHub

      I trained yolov8n.pt using the command line in 2023 and recently updated the latest version of the ultralytic library. I found that when I used the original command, it kept prompting me to download the yolo11n.pt file

  5. muhammadrizwan11muhammadrizwan11GitHub

    I noticed some discrepancies in the training and validation commands under the CLI chapter of the Ultralytics YOLO documentation. The documented training command is written as '' yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 '' but the correct command should be '' yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01'' The word "detect" should be removed. Similarly, the validation command is written as '' yolo detect val model=yolo11n.pt'' , whereas the correct command should be '' yolo val model=yolo11n.pt data=coco8.yaml batch=1 imgsz=640 ''. Again, "detect" is unnecessary, and important parameters such as the dataset (data=coco8.yaml), batch size (batch=1), and image size (imgsz=640) are missing. These inconsistencies might cause confusion for users following the documentation. Could the team review and update this section for accuracy? i am also doing working in yolo https://github.com/muhammadrizwan11

    1. Glenn JocherGlenn JocherUltralytics

      @muhammadrizwan11 thank you for pointing this out! You're correct that the detect task argument is optional in CLI commands when the model type is specified, as YOLO can infer the task from the model name. Both yolo detect train and yolo train syntaxes are valid, but we'll standardize the docs to use the more concise form where possible. The validation example should indeed include explicit parameters for clarity, even though data is inherited from training. We'll update the documentation to reflect these points. For reference, see the CLI Syntax section in the Ultralytics YOLO documentation.

  6. aryakptaryakptGitHub

    HI, can you help me, how do i save the validation result if i use CLI? Because i clone github ultralytics directly

    1. Glenn JocherGlenn JocherUltralytics(edited)

      @aryakpt validation results (metrics and plots such as the confusion matrix) are saved to a run folder like runs/detect/val by default. Add save_json=True to also save predictions as a COCO-format JSON file:

      yolo val model=path/to/best.pt data=data.yaml save_json=True

    2. aryakptaryakptGitHub(edited)

      thanks glenn for the response. but how can i access the val result like this using CLI? I want to save it in a variable

      best_model = YOLO(f"{output_path}/train{suffix}/weights/best.pt")
      val_result = best_model.val(data=data,  project=output_path)
      map50 = val_result.box.map50
    3. Glenn JocherGlenn JocherUltralytics(edited)

      The CLI doesn't return variables, and save_json=True saves per-image predictions in COCO JSON format rather than the summary metrics. To access metrics like mAP50 programmatically, use the Python API:

      from ultralytics import YOLO
      
      metrics = YOLO("path/to/best.pt").val(data="data.yaml")
      print(metrics.box.map50)

      For details, see the Val mode documentation.

  7. sakrigsakrigGitHub

    Apple's NeuralEngine API accelerates models for all new Apple products with the M4 chips.

    Does the IOS CLI app use the NeuralEngine for all Apple M4 products? Does Ultralytics support the M4 processor on the latest Mac, MacMini, Mac Pro, iPad, iPhone ...?

    Seems straight forward to support the M4 NeuralEngine for all Apple products, but I have not tried.

    1. Glenn JocherGlenn JocherUltralytics

      @sakrig ultralytics YOLO models can be exported to CoreML format for Apple devices, which leverages Apple's native acceleration including NeuralEngine where available. For M4 support, ensure you're using the latest PyTorch versions with macOS MPS backend. See our CoreML export docs for implementation details.

    1. Glenn JocherGlenn JocherUltralytics

      @arasul42 yes, you can pass a hyperparameter file in the CLI using the cfg argument, like this: yolo train cfg=your_hyperparameters.yaml.

      2
  8. duoerkuduoerkuGitHub

    你好,进一部沟通请联系15680550171, 或者添加微信 BK-Mike

    1. Glenn JocherGlenn JocherUltralytics

      @duoerku 你好!很抱歉,我们无法通过电话或微信进行交流,但我们很乐意在这个问题跟踪系统中帮助你解决任何有关Ultralytics YOLO的问题。如果你有任何技术问题或需要进一步的帮助,请随时在这里详细说明,我们会尽快给你回复。感谢你的理解,并期待你的回复。🙂

  9. duoerkuduoerkuGitHub

    你好,进一部沟通请联系15680550171, 或者添加微信 BK-Mike

    1. Paula DerrengerPaula DerrengerUltralytics

      您好,谢谢您对Ultralytics YOLOv8的兴趣!🚀 对于技术支持和进一步的沟通,请优先利用GitHub Issues功能提出您的问题或需求,这样我们能够提供更有条理且可追踪的支持。

      就您提供的信息来看,您似乎对命令行界面(CLI)的使用方法有兴趣,这里是可以通过几个简单示例来帮助您开始:

      1. 训练一个模型:

        yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
      2. 运行预测:

        yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
      3. 验证模型:

        yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640
      4. 导出模型为ONNX格式:

        yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128

      更多详细命令和选项,请参阅我们的官方文档。如果有更具体的问题或需求,欢迎在GitHub上开启一个issue进行讨论。🤗