Reference

CLI reference

The genedata command-line tool: auth, runs, models, deployments.

Two CLI surfaces talk to GeneFlow:

CLISourcePurpose
gfctlpackages/geneflow-python/geneflow/cli.pyGeneFlow-focused; ships with the SDK
genedataapps/genedata-cli/Whole-platform CLI (auth, datamarts, GeneFlow, ETL)

This page covers gfctl. For genedata, see the standalone CLI README.

Setup

pip install geneflow
export GENEFLOW_TRACKING_URI=https://api.genedata.io
export GENEDATA_PAT=$(genedata auth token)
export GENEFLOW_TENANT_ID=ACME

Experiments + runs

gfctl experiments list
gfctl experiments create fraud_v3 --description "XGBoost v3 baseline"

gfctl runs list --experiment fraud_v3 --status FINISHED
gfctl runs show run_abc123
gfctl runs cost  run_abc123                  # $ + tokens + duration
gfctl runs metrics run_abc123 --metric auc   # full step series

Model registry

gfctl models list
gfctl models show fraud-detector
gfctl models versions fraud-detector

# Promote v3 → Staging
gfctl models transition fraud-detector 3 Staging --reason "passed eval"

# Compare two versions ($ + metric diffs)
gfctl models compare fraud-detector --a 2 --b 3

Serving

# Deploy
gfctl endpoints create fraud-prod \
  --model fraud-detector --version 3 \
  --instance cpu-large \
  --min-replicas 2 --max-replicas 10

# List + status
gfctl endpoints list
gfctl endpoints show fraud-prod
gfctl endpoints metrics fraud-prod --window 60   # last 60 min

# Rolling update
gfctl endpoints update fraud-prod --version 4 --reason "precision win"
gfctl endpoints update fraud-prod --replicas 5

# Drift
gfctl drift baselines fraud-detector --version 3       # show
gfctl drift check fraud-prod --window 60               # force PSI run
gfctl drift alerts fraud-prod --open                   # open alerts only
gfctl drift ack 4271                                   # acknowledge

# Tear down
gfctl endpoints delete fraud-prod

Prompts

gfctl prompts list
gfctl prompts show customer_support
gfctl prompts versions customer_support

gfctl prompts register customer_support --from prompt.md
gfctl prompts transition customer_support 2 Staging --reason "v2 deploy"
gfctl prompts search "polite to angry users" --k 5

Eval

gfctl eval-sets create support-v1 --from eval.json
gfctl eval-sets list
gfctl eval-runs start --set support-v1 --prompt customer_support --version 2 \
  --judge llm_as_judge
gfctl eval-runs show run_eval_xyz

Lineage

gfctl lineage upstream run_abc123 --kind feature_group --id user_features_v2
gfctl lineage upstream run_abc123 --kind dataset --id s3://bucket/train.parquet

gfctl lineage downstream --kind feature_group --id user_features_v2

MLflow Projects

gfctl projects run git@github.com:org/repo \
  --entry-point train --param alpha=0.1 \
  --backend kubernetes --experiment fraud_v3

MLflow import

# Dry run — count entities, don't write
gfctl import-mlflow \
  --source https://mlflow.example.com \
  --token "$OLD_MLFLOW_TOKEN" \
  --prefix "mlflow:" \
  --dry-run

# Real import
gfctl import-mlflow \
  --source https://mlflow.example.com \
  --token "$OLD_MLFLOW_TOKEN" \
  --prefix "mlflow:"

# Watch progress
gfctl import-mlflow status imp_xyz

Output formats

All list / show commands support --format:

gfctl endpoints list --format json | jq '.[] | select(.status=="READY")'
gfctl endpoints list --format yaml
gfctl endpoints list --format table   # default

Exit codes

CodeMeaning
0Success
1Operation failed (4xx/5xx)
2Bad invocation (missing flags / env)
3Connection error
4Auth error (PAT invalid or scoped wrong)