Skip to navigation

CLI

The IBEE CLI (ibee) lets you manage your cloud resources from the terminal. It’s built on the Python SDK, so every command maps directly to an API endpoint.

Install

pip install ibee-cli

Requires Python 3.10+. This installs the ibee command.

Authenticate

Create an API token in the portal under Settings → API Tokens, then set two environment variables:

export IBEE_TOKEN="ibee_prod_key_xxxxxxxxxxxx"
export IBEE_WORKSPACE_ID="907479"

Both can also be passed per command with --token and --workspace.

The CLI exposes billing eligibility as an explicit command; create commands do not run it automatically. For a client-side preflight, give the token billing.read, run ibee billing eligibility SKU, and continue only when the decision allows creation. Resource creation still needs the relevant product write scope and remains subject to the product service’s authoritative billing check.

Global options

OptionDescription
--tokenAPI token (default: IBEE_TOKEN)
--workspace, -wWorkspace ID (default: IBEE_WORKSPACE_ID)
--devTarget the development gateway (api.ibee.co.in) instead of production
--base-urlOverride the API base URL entirely
--jsonPrint raw JSON instead of a formatted table
--versionShow the CLI version

Object storage

ibee buckets list
ibee buckets create my-bucket --region in-south-2
ibee buckets get my-bucket
ibee buckets update my-bucket --public
ibee buckets credentials create --name deploy
ibee buckets delete my-bucket --yes

ibee buckets create requires an Object Storage region identifier. Use a region configured for the target environment; a compute site_id or display name is not accepted.

Secret store

ibee secrets stores list # list secret stores
ibee secrets list --store-id STORE_ID # list secrets in a store
ibee secrets value SECRET_ID # print a secret's value as JSON

Compute and virtual machines

ibee compute sites
ibee compute plans --vm-type cloud --site-id SITE_ID
ibee compute images --vm-type cloud --site-id SITE_ID
ibee vms list
ibee vms get VM_ID
ibee vms start VM_ID --wait
ibee vms stop VM_ID --wait
ibee vms reboot VM_ID
ibee vms metrics VM_ID

CLI 0.3.0 cannot create or delete VMs against the current API. VM creation requires the chosen plan’s billing_catalog, and deleting a VM that has an automatic public IP requires a public_ip_action; this CLI version sends neither. Use the Python or TypeScript SDK or the HTTP API for these two steps until the next CLI release. The Cloud VMs example shows both.

Power commands return an operation ID. Without --wait, poll it yourself:

ibee ops get OPERATION_ID --wait

GPU VMs

ibee gpus list
ibee gpus get VM_ID
ibee gpus start VM_ID
ibee gpus stop VM_ID

GPU VM creation has the same CLI 0.3.0 limitation as Cloud VMs; create GPU VMs with the SDK or HTTP API.

Networking

Networking uses explicit resource groups, so commands and flags are visible in shell completion and --help without constructing JSON request bodies.

ibee vpcs sites
ibee vpcs list --site-id SITE_ID
ibee reserved-ips list --site-id SITE_ID
ibee firewalls list
ibee load-balancers list

VPCs

ibee vpcs create production \
--site-id SITE_ID --cidr 10.44.0.0/22 --no-auto-cidr
ibee vpcs subnets create VPC_ID applications \
--cidr 10.44.0.0/24 --no-auto-cidr
ibee vpcs nodes attach VPC_ID VM_ID \
--subnet-id SUBNET_ID --connectivity private
ibee vpcs nat create VPC_ID \
--name egress --reserved-ip-id RESERVED_IP_ID

IPs, firewalls, and load balancers

ibee reserved-ips reserve --site-id SITE_ID --label edge
ibee reserved-ips move RESERVED_IP_ID NEW_VM_ID \
--vpc-id VPC_ID --subnet-id SUBNET_ID
ibee firewalls create web
ibee firewalls rules create FIREWALL_GROUP_ID \
--protocol tcp --port-start 443 --port-end 443 \
--remote-target 0.0.0.0/0
ibee firewalls attachments attach FIREWALL_GROUP_ID VM_ID
ibee load-balancers list --layer l7
ibee load-balancers status LOAD_BALANCER_ID

Operations that delete, detach, or release ask for confirmation first. Add --yes to run them unattended:

ibee vpcs delete VPC_ID --yes

Billing eligibility

Before creating a billable resource, you can explicitly check whether billing permits it. The token needs the billing.read scope; create only when the result shows allowed. This command is not invoked automatically by other CLI commands.

ibee billing eligibility OBJECTST-STD

JSON output

Add --json to any command for machine-readable output — useful in scripts:

ibee --json buckets list | jq '.buckets[].name'

Development environment

Use --dev (or IBEE_ENV=dev) with a ibee_dev_key_... token to target the development gateway:

ibee --dev buckets list