Skip to main content

Command Reference

Complete reference for all Lucitra CLI commands. Every command accepts the global flags --api-key (-k) and --api-url to override stored configuration.

lucitra upload

Upload a dataset file to Lucitra. Creates a new dataset record and uploads the file via a signed URL.
lucitra upload <file> --name <name> [flags]
ParameterTypeRequiredDescription
<file>pathYesPath to the dataset file to upload
--name, -nstringYesHuman-readable name for the dataset
--project, -pUUIDNoProject to upload into (uses default if set)
--format, -fenumNoDataset format: coco, kitti, nuscenes, custom (default: custom)
--api-key, -kstringNoOverride stored API key
--api-urlstringNoOverride stored API URL
lucitra upload ./annotations.json --name "warehouse-v3" --format coco
The CLI automatically handles multipart uploads for large files. There is no need to split files manually.

lucitra validate

Run a validation job against a dataset. The CLI polls for progress and displays results when the job completes.
lucitra validate --dataset <uuid> [flags]
ParameterTypeRequiredDescription
--dataset, -dUUIDYesDataset to validate
--type, -tenumNoValidation type: coverage, physics, sim-to-real, full (default: full)
--timeoutintegerNoMaximum wait time in seconds (default: 300)
--jsonbooleanNoOutput raw JSON instead of formatted summary
--api-key, -kstringNoOverride stored API key
--api-urlstringNoOverride stored API URL
lucitra validate --dataset 9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
The CLI displays a live progress indicator while the validation runs:
Validating dataset "warehouse-v3"...
  ████████████████████░░░░░░░░░░  67%  Running physics checks...

Validation Complete
───────────────────────────────────────
  Overall Score      82/100
  Coverage           78/100
  Physics            91/100
  Distribution       84/100
  Sim-to-Real        75/100

  Report ID: rpt_a1b2c3d4e5f6
  Full report: https://app.lucitra.io/reports/rpt_a1b2c3d4e5f6
If the validation does not complete within the --timeout window, the CLI exits with code 1. The validation job continues running server-side. Use lucitra report to retrieve results later.

lucitra datasets

List datasets in a project.
lucitra datasets [flags]
ParameterTypeRequiredDescription
--project, -pUUIDNoFilter by project (uses default if set)
--jsonbooleanNoOutput raw JSON instead of table
--api-key, -kstringNoOverride stored API key
--api-urlstringNoOverride stored API URL
lucitra datasets --project 9f1a2b3c-...
Output:
NAME                FORMAT     SCENES    SIZE       UPLOADED
warehouse-v3        coco       1,247     342 MB     2 hours ago
highway-scenes      nuscenes   850       1.2 GB     3 days ago
factory-floor-v1    kitti      3,100     890 MB     1 week ago

lucitra report

Fetch and display a validation report.
lucitra report <report-id> [flags]
ParameterTypeRequiredDescription
<report-id>UUIDYesThe report ID to retrieve
--format, -fenumNoOutput format: summary, json, pdf (default: summary)
--output, -opathNoFile path to write output (required for pdf, optional for json)
--api-key, -kstringNoOverride stored API key
--api-urlstringNoOverride stored API URL
lucitra report rpt_a1b2c3d4e5f6
The pdf format generates a report suitable for compliance documentation and stakeholder review. It includes score breakdowns, flagged issues, and remediation guidance.

lucitra config

Manage CLI configuration.
lucitra config <action> [key] [value]
ParameterTypeRequiredDescription
<action>enumYesOne of: set, get, list
[key]stringFor set/getConfig key: api-key, api-url, project-id
[value]stringFor setValue to store
--jsonbooleanNoOutput in JSON format
lucitra config set api-key luci_your_api_key

Example Workflows

Upload and validate a dataset

1

Upload your data

lucitra upload ./coco-annotations.json \
  --name "parking-lot-v2" \
  --format coco \
  --project 9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
The CLI prints the new dataset ID on success:
Dataset created: ds_x7y8z9a0b1c2
Upload complete (342 MB)
2

Run validation

lucitra validate --dataset ds_x7y8z9a0b1c2 --type full
3

Export the report

lucitra report rpt_a1b2c3d4e5f6 --format pdf --output ./validation-report.pdf

CI/CD quality gate

Use the --json flag and a script to fail your pipeline when scores drop below a threshold:
#!/bin/bash
set -e

# Upload and validate
lucitra upload ./data.zip --name "ci-$(date +%s)" --format coco
RESULT=$(lucitra validate -d "$DATASET_ID" --json)

# Check overall score
SCORE=$(echo "$RESULT" | jq '.overall_score')
if (( $(echo "$SCORE < 80" | bc -l) )); then
  echo "Validation failed: overall score $SCORE is below threshold 80"
  exit 1
fi

echo "Validation passed with score $SCORE"

Quick coverage check

When you only need to verify scenario coverage without running the full validation suite:
lucitra validate -d ds_x7y8z9a0b1c2 --type coverage --json | jq '.scores.coverage'