> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/docs/_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/)