> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ibee.co.in/docs/api-reference/cli/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/_mcp/server. # CLI > Manage compute, networking, storage, and secrets from your terminal. The IBEE CLI (`ibee`) lets you manage your cloud resources from the terminal. It's built on the [Python SDK](/docs/api-reference/sdk-overview), so every command maps directly to an API endpoint. ## Install ```bash 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: ```bash 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 | Option | Description | | ------------------- | ----------------------------------------------------------------------- | | `--token` | API token (default: `IBEE_TOKEN`) | | `--workspace`, `-w` | Workspace ID (default: `IBEE_WORKSPACE_ID`) | | `--dev` | Target the development gateway (`api.ibee.co.in`) instead of production | | `--base-url` | Override the API base URL entirely | | `--json` | Print raw JSON instead of a formatted table | | `--version` | Show the CLI version | ## Object storage ```bash 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 ```bash 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 ```bash 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 ``` > **Warning** > > 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](/docs/api-reference/sdk-overview) > or the HTTP API for these two steps until the next CLI release. The > [Cloud VMs example](https://github.com/devs-ibee/examples/tree/main/cloud-vms) > shows both. Power commands return an operation ID. Without `--wait`, poll it yourself: ```bash ibee ops get OPERATION_ID --wait ``` ## GPU VMs ```bash 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. ```bash 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 ```bash 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 ```bash 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: ```bash 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. ```bash ibee billing eligibility OBJECTST-STD ``` ## JSON output Add `--json` to any command for machine-readable output — useful in scripts: ```bash 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: ```bash ibee --dev buckets list ``` ## Related * [Python SDK](/docs/api-reference/sdk-overview) — the library the CLI is built on * [Examples](/docs/api-reference/examples) — complete CLI, SDK, HTTP, and Terraform examples * [Authentication](/docs/api-reference/authentication) * [`ibee-cli` on PyPI](https://pypi.org/project/ibee-cli/) > Manage compute, networking, storage, and secrets from your terminal.