Skip to content

v1.3.1 - The CLI Rewrite: Built for Agents

Latest

Choose a tag to compare

@yeldarby yeldarby released this 03 Apr 21:48
a3c7eba

This release rewrites the Roboflow CLI from the ground up to serve as the canonical machine interface for the Roboflow platform. Every command now supports --json for structured output, follows a consistent noun verb pattern, and provides actionable error messages to make Roboflow accessible to coding agents, CI/CD pipelines, and automation workflows.

Highlights

🏗️ Modular CLI architecture — The monolithic CLI has been decomposed into 18 handler modules organized by resource (project, version, image, model, workspace, etc.), each with a clean noun-verb pattern. (#445)

📡 REST API feature parity — 22 new API adapter functions and corresponding CLI commands for folders, annotation batches/jobs, workflows, workspace stats, version creation, video status, and universe search. (#446)

⚡ Typer framework migration — Migrated from argparse to typer for Rich-formatted help, built-in shell completion, type-safe parameters, and consistency with the Roboflow Inference CLI. (#447)

New Commands

Group Commands
annotation batch list, get
annotation job list, get, create
folder list, create, delete
workflow list, get, create, update, version-list, fork
workspace stats team, usage, plan
version create Create new dataset versions from CLI
video status Check async video inference job status
universe search Search public datasets and models
model infer Run inference (canonical form of infer)
image search Unified workspace/project search with optional -p flag
completion bash, zsh, fish — shell completion scripts

Agent Experience (AX)

  • --json everywhere — Every command supports --json for structured output with a stable schema
  • Structured errors{"error": {"message": "...", "hint": "..."}} on stderr with exit codes (0=success, 1=error, 2=auth, 3=not found)
  • No interactive prompts when all required flags are provided
  • Actionable hints — Errors tell you what went wrong AND what to do next
  • Auto-detected plan limits — Plan-gated errors automatically suggest upgrade paths
  • API key sanitization — Credentials are stripped from error messages

Developer Experience (DX)

  • Rich-formatted help — Color-coded commands, options, and descriptions
  • Alphabetized commands and options at every level
  • Flattened top-level helproboflow --help shows all commands as noun verb in a single view
  • Shell completionroboflow completion bash/zsh/fish generates completion scripts

SDK Additions

  • Workspace.list_folders(), create_folder(), delete_folder()
  • Workspace.get_team_stats(), get_usage_stats(), get_plan_info()
  • Project.list_batches(), get_batch(), list_jobs(), get_job(), create_job()
  • Project.list_workflows(), get_workflow(), create_workflow(), update_workflow()
  • Workspace.delete_image() (#442)
  • Key-value metadata support for image upload (#440)
  • Search export with download and extraction (#439)

Breaking Changes

  • Python 3.9 dropped — Minimum version is now Python 3.10+
  • typer>=0.12.0 added as a dependency (replaces argparse for CLI)

Backwards Compatibility

All legacy CLI commands and flags continue to work. The old roboflow upload, roboflow download, roboflow login forms are preserved as hidden aliases. Scripts importing from roboflow.roboflowpy remain functional.

Other Changes

  • Added confidence argument to keypoint detection model (#354)
  • Added large RF-DETR sizes and segmentation model upload (#434)
  • Flexible annotation/image filename matching (#417)
  • Project.delete_images() method (#424)
  • Configurable training epochs (#420)
  • Pre-commit hooks updated (#387)

Full Changelog: v1.2.16...v1.3.1