CenterOS CLI
Install and use the CenterOS CLI to manage datasets, training jobs, models, and fleet robots from the terminal. pip install centeros-cli.
On this page
- Installation
- Quick Start
- Authentication
- Datasets
- Training
- Models
- Fleet
- Action Layer
- Stats & Health
- Configuration
- Python SDK
Agent & Dev Access
Also see
Guide Python 3.10+
Manage datasets, training jobs, models, and your robot fleet from the terminal. Also usable as a Python SDK.
Updated Apr 2026 pip install centeros-cli
Installation
shell Copy
# From PyPI $ pip install centeros-cli
# From source (development) $ git clone https://github.com/JerryAlfred/fearless-platform.git $ cd fearless-platform/centeros-cli $ pip install -e .
Requires Python 3.10 or higher. The CLI installs as the centeros command.
Quick Start
The typical workflow: authenticate, list your datasets, create a training job, then deploy the model.
shell Copy
# 1. Authenticate $ centeros login --username jerry --password '***' $ centeros whoami
# 2. Create a Personal Access Token for scripts $ centeros pat create --name "my-agent" --scopes "*"
# 3. Browse your datasets $ centeros datasets list
# 4. Create a training job $ centeros training create --name "dp-v1" --model-type diffusion_policy --dataset-ids 1,2
# 5. Launch it $ centeros training launch <job_id>
# 6. Register and deploy the resulting model $ centeros models register --name "dp-v1" --artifact-uri gs://bucket/model.pt $ centeros models promote 5 --to validated $ centeros fleet deploy --robot arm-01 --model 5
Authentication
Login
shell Copy
$ centeros login --username jerry --password '***' # Logged in as jerry # Token stored in ~/.centeros/config.json
$ centeros whoami # Username: jerry | Email: jerry@... | Role: admin
$ centeros logout # Credentials cleared.
Personal Access Tokens
PATs are long-lived tokens for CI/CD, scripts, and agents. They start with frl_.
shell Copy
$ centeros pat create --name "ci-pipeline" --scopes "datasets:read,training:*" --expires-days 90 # PAT created: frl_abc123... # Store this token securely -- it won't be shown again.
# Use the PAT in CI/CD $ export CENTEROS_TOKEN=frl_abc123... $ centeros datasets list
Datasets
| Command | Description |
|---|---|
centeros datasets list |
List all datasets. Options: --project, --limit, --json |
centeros datasets get <id> |
Get detailed info about a single dataset. |
centeros datasets upload |
Request a signed upload URL. Options: --name, --format, --robot-type |
shell Copy
$ centeros datasets list --limit 10 # +----+--------------+------+-------+----------+ # | ID | Name | Type | Robot | Size | # +----+--------------+------+-------+----------+ # | 42 | grasp-ep-001 | hdf5 | arm | 52.3 MB | # +----+--------------+------+-------+----------+
$ centeros datasets get 42 # full JSON details $ centeros datasets upload --name "grasp-ep-002" --format hdf5 --robot-type arm
Training
| Command | Description |
|---|---|
centeros training list |
List training jobs. Options: --status, --limit, --json |
centeros training create |
Create a new job. Options: --name, --model-type, --dataset-ids, --mode, --base-model |
centeros training status <id> |
Check progress of a training job. |
centeros training launch <id> |
Launch a pending training job. |
centeros training estimate |
Estimate cost for given datasets. --dataset-ids |
centeros training catalog |
Show available fine-tune model providers. |
shell Copy
$ centeros training catalog $ centeros training create --name "dp-v1" --model-type diffusion_policy --dataset-ids 1,2 $ centeros training status abc123def456 $ centeros training launch abc123def456 $ centeros training estimate --dataset-ids 1,2,3
Models
| Command | Description |
|---|---|
centeros models list |
List registered models. Options: --status, --name, --limit, --json |
centeros models register |
Register a new model. Options: --name, --artifact-uri, --version-tag, --training-job-id |
centeros models promote <id> |
Promote model lifecycle. `--to validated |
centeros models lineage <id> |
Show full lineage: training job, datasets, deployments, evals. |
shell Copy
$ centeros models register --name "dp-v1" --artifact-uri gs://bucket/model.pt --training-job-id abc123 $ centeros models list --status draft $ centeros models promote 5 --to validated $ centeros models lineage 5
Fleet
| Command | Description |
|---|---|
centeros fleet summary |
Fleet overview: online/offline counts, alerts. --json |
centeros fleet robots |
List robots. Options: --status, --site-key, --search |
centeros fleet deploy |
Deploy a model to a robot. --robot, --model, --strategy |
centeros fleet estop <id> |
Emergency stop a robot. Requires confirmation. |
shell Copy
$ centeros fleet summary # +----------------+-------+ # | Metric | Value | # +----------------+-------+ # | Total Robots | 12 | # | online | 8 | # | offline | 4 | # | Open Alerts | 2 | # +----------------+-------+
$ centeros fleet robots --status online $ centeros fleet deploy --robot arm-01 --model 5 --strategy immediate $ centeros fleet estop arm-01
Action Layer (Raw API)
Access the Action Layer directly from the CLI for any action, including those without a dedicated subcommand.
shell Copy
# List all actions, optionally filtered by category $ centeros actions list $ centeros actions list --category training
# Execute any action by name $ centeros actions run list_datasets --params '{"limit": 10}' $ centeros actions run get_platform_stats --params '{}' $ centeros actions run create_annotation_task --params '{"title": "Label grasps", "dataset_id": 42}'
Stats & Health
shell Copy
$ centeros stats # +-------------------+--------+ # | Metric | Value | # +-------------------+--------+ # | Total Datasets | 247 | # | Total Size | 18.3 GB| # | Total Annotations | 1,204 | # +-------------------+--------+
$ centeros health --json
Configuration
Credentials are stored in ~/.centeros/config.json. You can override settings with environment variables:
| Variable | Description |
|---|---|
CENTEROS_API_URL |
API base URL. Overrides the value in config file. Default: production Cloud Run backend. |
CENTEROS_TOKEN |
Auth token (JWT or PAT). Overrides stored credentials. Set this for CI/CD pipelines. |
CI/CD tip: Set CENTEROS_TOKEN=frl_... in your CI environment and the CLI will authenticate automatically without needing centeros login.
Python SDK
The same centeros-cli package includes a Python SDK for programmatic use in scripts, notebooks, and custom pipelines.
python Copy
from centeros import CenterOSClient
client = CenterOSClient(api_url="https://...", token="frl_...")
# Datasets datasets = client.datasets.list()
# Training job = client.training.create( name="test-run", dataset_ids=[1, 2], model_type="diffusion_policy", ) client.training.launch(job["job_key"])
# Models models = client.models.list(status="validated") client.models.promote(5, "deployed") lineage = client.models.lineage(5)
# Fleet summary = client.fleet.summary() client.fleet.deploy("arm-01", model_version_id=5)
# Actions (raw) result = client.actions.run("get_platform_stats")
The CenterOSClient reads ~/.centeros/config.json by default if no api_url or token are provided. You can also use the CENTEROS_API_URL and CENTEROS_TOKEN environment variables.
Next steps
API Reference Full REST API docs with all 39 actions and schemas → MCP Integration Connect Claude, Cursor, or Windsurf to the platform → Agent Access Overview Three ways to access the platform programmatically → Open Platform Manage everything in the browser →







