Metadata-Version: 2.5
Name: qualia-cli
Version: 0.2.0rc4
Summary: CLI for the Qualia robotics data and VLA platform
Project-URL: Homepage, https://qualiastudios.dev
Project-URL: Documentation, https://docs.qualiastudios.dev
Author: Qualia Studios
License-Expression: MIT
Keywords: cli,fine-tuning,qualia,robotics,vla
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: click>=8.1.0
Requires-Dist: qualia-sdk>=0.7.0rc4
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.15.0
Description-Content-Type: text/markdown

# Qualia CLI

Terminal interface for the [Qualia](https://qualiastudios.dev) robotics data and VLA platform.

## Install

```sh
pip install qualia-cli
```

Or with [uv](https://docs.astral.sh/uv/):

```sh
uv tool install qualia-cli
```

### Pre-release builds

Deployments running ahead of the public release need the matching pre-release
wheel — the upload protocol is negotiated exactly, so the CLI and the endpoint
it talks to have to be the same generation. Pin it:

```sh
pip install 'qualia-cli==0.2.0rc1'
```

uv does not resolve a pre-release through a dependency, even one that names it,
so uv needs the flag as well as the pin:

```sh
uv tool install --prerelease=allow 'qualia-cli==0.2.0rc1'
```

## Quick start

```sh
# Authenticate (pick one)
qualia auth login                        # interactive, saves to config
export QUALIA_API_KEY="your-api-key"     # env var
qualia --token <KEY> <command>           # inline, for CI/scripts

# List available models
qualia model list

# List GPU instances
qualia instance list

# Create a project
qualia project create "My Robot"

# Start a fine-tuning job
qualia job launch \
  --project-id <id> \
  --vla-type smolvla \
  --model-id lerobot/smolvla_base \
  --dataset-version-id <DATASET_VERSION_UUID> \
  --hours 2.0 \
  --camera-mappings '{"cam_1": "observation.images.top"}'

# Check job status
qualia job get <job-id>

# Import an exact Hugging Face dataset commit. HF_TOKEN is read from the
# environment or the Hub's protected local credential store, never an argv flag.
export HF_TOKEN="..."  # omit for public datasets
qualia dataset import-hf \
  qualia-robotics/openarm-cube-in-box-v1 \
  17c29c487d886878ddcb3c5649101b2860fbc047 \
  openarm-cube-in-box \
  --source-format lerobot_v3
```

## JSON output

All commands support `--json` for machine-readable output:

```sh
qualia project list --json
qualia credit --json
```
