cfc04b473f87d5f98728ee80bc7e303752a76a47
qc-cli
A CLI for Qualcomm's MLOps pipeline — browse and download models from Qualcomm AI Hub, fine-tune them on custom datasets using SageMaker, validate inference, and prepare artifacts for Qualcomm hardware deployment.
Requirements
- Python 3.13+
- uv
- AWS account with credentials configured (
aws configure) when usingqc-cli infra - AWS CDK CLI (
npm install -g aws-cdk) when usingqc-cli infra setuporqc-cli infra destroy
Installation
git clone <repo>
cd qc-cli
uv sync
Run commands with uv run qc-cli <command> or activate the venv first:
source .venv/bin/activate
qc-cli --help
Quick start
# 1. Create config.yaml in the current directory
qc-cli init
# 2. Edit config.yaml — at minimum set s3.bucket and sagemaker.role_name
# 3. Provision AWS infrastructure (S3 bucket + SageMaker IAM role).
# This is the step that requires the AWS CDK CLI.
qc-cli infra setup
Configuration
qc-cli init writes a config.yaml in the current directory. The fields you must fill in before using the tool:
aws:
region: us-east-1
profile: default # AWS CLI profile name
s3:
bucket: your-unique-bucket-name
sagemaker:
role_name: qc-cli-sagemaker-role
To provision an MLflow tracking server, set:
mlflow:
mode: create
tracking_server_name: your-tracking-server-name
To use an existing MLflow tracking server, set:
mlflow:
mode: existing
tracking_server_name: your-tracking-server-name
Commands
init
qc-cli init Write config.yaml
qc-cli init --output <path> Write config to a custom path
qc-cli init --force Overwrite an existing config file
infra
qc-cli infra setup Deploy the CDK stack
qc-cli infra setup --no-bootstrap Deploy without running CDK bootstrap
qc-cli infra setup --cloudformation-execution-policy <arn> Set CDK bootstrap execution policy ARN
qc-cli infra status Show CDK stack/resource status
qc-cli infra destroy Destroy stack, retaining S3 data
qc-cli infra destroy --yes Destroy stack without confirmation
qc-cli infra destroy --delete-bucket-data Destroy stack and delete S3 data
AWS permissions required
The IAM user or role running the CLI needs:
| Action | Service |
|---|---|
| CreateBucket, DeleteBucket, PutObject, GetObject, ListBucket, DeleteObject | S3 |
| CreateRole, GetRole, DeleteRole, AttachRolePolicy, DetachRolePolicy | IAM |
| CreateStack, UpdateStack, DeleteStack, DescribeStacks, DescribeStackEvents | CloudFormation |
| GetCallerIdentity | STS |
| CreateMlflowTrackingServer, DescribeMlflowTrackingServer, DeleteMlflowTrackingServer | SageMaker AI, when mlflow.mode is create or existing |
AdministratorAccess covers all of the above.
Description
Languages
Python
100%