The exc CLI is the primary way to drive Excloud from a terminal. It wraps every public API — compute, object storage, secrets, Kubernetes, DNS, IAM, billing — behind a single binary.

Install: see CLI Installation. Authenticate: exc login.

Discover flags as you go

Every command supports --help. The reference below is a map; the authoritative flag list always lives in exc <command> --help.

Top-level commands

CommandWhat it does
exc loginAuthenticate the CLI against Excloud. Writes credentials to ~/.exc/config.
exc meShow the currently authenticated user.
exc orgList the orgs your account belongs to.
exc accountInvite, list, and revoke accounts inside an org.
exc configManage CLI configuration: default account, default org.
exc apikeyCreate, list, and delete API keys.
exc serviceaccountManage IAM service accounts.
exc policyManage IAM policies and policy bindings.
exc quotaShow the quotas applied to your org.
exc billingShow invoices, estimates, and cost breakdowns.
exc computeCreate and manage VMs, volumes, snapshots, public IPv4, SSH keys, security groups.
exc securitygroupManage security groups, rules, and bindings (also reachable as exc compute securitygroup).
exc bucketsCreate buckets, manage S3 access keys, upload/download/sync objects.
exc secretManage org-scoped secrets (encrypted at rest, audited on read).
exc k8sCreate Kubernetes clusters, fetch kubeconfig, manage worker pools.
exc completionGenerate shell completions (bash, zsh, fish, powershell).
exc versionPrint the CLI version.

Compute

exc compute create \
  --name web-1 \
  --image_id 1 \
  --instance_type m1a.large \
  --subnet_id 1 \
  --security_group_ids 12 \
  --ssh_pubkey my-key \
  --allocate_public_ipv4 \
  --wait

Key subcommands:

  • Lifecycle: create, start, stop, restart, terminate, rename, resize
  • Inspection: list, get, metrics, seriallogs (supports -f to follow)
  • Access: connect (short-lived SSH session), exec (run a command over SSH), scp, console
  • Protection: protect / unprotect (delete protection)
  • Catalogs: image list, instancetype list
  • Sub-resources: key (SSH keys), publicip (IPv4 reservations), volume (block volumes), snapshot (volume snapshots), subnet (read-only)
  • Networking: securitygroup (top-level or under compute), localip (your detected public IP)

See: Instances, Volumes, Snapshots, Public IPv4, Subnets, SSH Keys, Serial Logs, Security Group.

Object Storage (Buckets)

exc buckets create my-bucket
exc buckets keys create automation
exc buckets objects upload my-bucket ./app.tgz --key app.tgz
exc buckets objects presign my-bucket app.tgz --ttl 3600

Subcommands: create, list/ls, get, update, delete, usage, cp, rm, keys, objects, multipart.

The bucket endpoint is S3-compatible at https://<org-id>.buckets.excloud.in. See Object Storage.

Secrets

exc secret create --path /app/prod/db_url --value 'postgres://…'
exc secret reveal --path /app/prod/db_url
exc secret events --path /app/prod/db_url

list/get/lookup return metadata only; values come back only via reveal, and every reveal is audited. See Secrets.

Kubernetes

exc k8s cluster create \
  --control_plane_image_id 1 \
  --control_plane_instance_type m1a.large \
  --subnet_id 1 \
  --ssh_pubkey my-key
exc k8s cluster kubeconfig get   --cluster_id 7 -o ~/.kube/excloud.yaml
exc k8s cluster worker create \
  --cluster_id 7 \
  --worker_name worker-1 \
  --worker_image_id 1 \
  --worker_instance_type m1a.xlarge \
  --subnet_id 1 \
  --ssh_pubkey my-key

Subcommands: cluster create|list|delete, cluster kubeconfig get|merge, cluster worker create|list|delete, bootstrap controlplane …. See Kubernetes.

IAM (policies, accounts, keys)

exc apikey create
exc serviceaccount list
exc policy list
exc policy binding list
exc account invite --email teammate@example.com

Policy authoring is documented in the Policies guide; the full action catalog is in the Permissions Reference.

Billing

exc billing get
exc billing costs
exc billing estimate

Config & context

exc config set --account <account-id> --org <organization-id>
exc config list

The CLI stores tokens, default account, and default org under ~/.exc/config. The Terraform provider reads the same file when no explicit credentials are supplied.

Getting help