Cheatsheet
Every command on one page. For full option detail, use <command> --help.
Notation
<x>— a placeholder you fill in (e.g.<name\|uuid>→my-vmor a UUID)<name\|uuid>— either a resource name or a UUID is accepted[...]— optional
Config
| Command | Description |
|---|---|
eci config init | Interactive initial setup for API endpoint, token, and default zone |
eci config show | Print the current config YAML (api_token masked as ***) |
eci config set <key> <value> | Non-interactive set. Keys: api_endpoint / api_token / zone_id |
eci config verify | Validate token auth and zone in one go |
Metadata
| Command | Description |
|---|---|
eci region list | List available regions |
eci zone list | List available zones in the current region |
eci zone get <name|uuid> | Show details for a zone |
eci image list | List available OS images |
eci image get <name|uuid> | Show details for an image (UUID, size, status) |
eci instance-type list --activated true | List activated instance types and attached GPU/NPU info |
eci pricing list --resource-kind <kind> | Hourly price per resource kind (KRW). Kinds include vm_allocation, block_storage, public_ip, etc. |
eci org info | Organization info and resource quotas (GPU count, per-instance-type limits, storage, etc.) |
eci org usage | Current resource usage stats (split by ondemand / spot) |
Compute — VMs
| Command | Description |
|---|---|
eci compute vm list | List all VMs (name, status, instance type, IP) |
eci compute vm get <name|uuid> | Show one VM along with its disks, NICs, and public IPs |
eci compute vm launch --name <n> --password <pw> [...] | Auto-create the VM, disk, NIC, and public IP and boot. Auto-cleans up on mid-flight failure |
eci compute vm create --name <n> [...] | Create only the VM metadata (you must attach disks and NICs separately) |
eci compute vm start <name|uuid> | Start a stopped VM (re-allocates resources) |
eci compute vm stop <name|uuid> | Stop the VM — releases allocation; disk and public IP are kept (restartable) |
eci compute vm update <name|uuid> [...] | Update VM attributes (name, tags, etc.) |
eci compute vm delete <name|uuid> --cascade | Delete the VM and every attached resource at once. Without --cascade, disk / NIC / public IP are left behind and continue to be billed |
eci compute ssh <name|uuid> [remote-cmd] | Auto-SSH using the first public IP. Trailing args become a remote command |
Common vm launch flags
| Flag | Effect |
|---|---|
--name <n> | VM name. Prompts or auto-generates when omitted |
--password <pw> | OS root password (required). 10+ chars, 3+ classes, no long sequences |
--instance-type C-2 | Instance type. Falls back to spec or prompt when omitted |
--image "<name|uuid>" | OS image. Defaults to the appropriate image for the instance family |
--size-gib 20 | Boot disk size. Default 20 GiB for CPU, 50 GiB for GPU/NPU |
--subnet <name|uuid> | Subnet. Auto-creates and reuses eci-default-subnet when omitted |
--price-type spot | Spot pricing (accelerator instances only) |
--pricing-id <uuid> | Pick a specific pricing when multiple exist for the instance type |
--spec <name> | Apply a saved vm-spec template |
--no-spec | Disable auto-applying the spec named default |
--no-public-ip | Create only the NIC, no public IP (internal only) |
--no-network | Skip both NIC and public IP |
--no-start | Provision only; skip boot (zero compute cost) |
--wait | Block until status: started (usually 1–2 min) |
compute ssh usage
| Position | Meaning |
|---|---|
| Before the name | Wrapper options --login / --port / --identity |
| After the name | Remote command |
eci compute ssh my-vm # interactive login
eci compute ssh my-vm uname -a # remote command
eci compute ssh --login root --port 2222 my-vm # ssh options
Compute — clusters
| Command | Description |
|---|---|
eci compute cluster list | List virtual clusters |
eci compute cluster create --name <n> --instance-type <g-type> | Create a virtual cluster. Accelerator instance types only (GPU / NPU) |
eci compute cluster start|stop <name|uuid> | Allocate / release cluster resources |
eci compute cluster delete <name|uuid> | Delete the cluster |
Network
| Command | Description |
|---|---|
eci network vnet list | List virtual networks |
eci network vnet create --name <n> --cidr <cidr> | Create a virtual network. CIDR must be inside 172.16.0.0/14 or 192.168.0.0/16 |
eci network vnet delete <name|uuid> | Delete a virtual network (clean up its subnets first) |
eci network subnet list | List subnets |
eci network subnet create --name <n> --network <name|uuid> --gateway <ip/prefix> | Create a subnet. Gateway needs CIDR notation (minimum /26, e.g. 172.18.0.1/24) |
eci network subnet delete <name|uuid> | Delete a subnet |
eci network nic create --name <n> --subnet <name|uuid> | Create a NIC in a subnet |
eci network nic attach <name|uuid> --vm <name|uuid> / nic detach <name|uuid> | Attach / detach a NIC to a VM |
eci network nic delete <name|uuid> | Delete a NIC (detach first) |
eci network ip create --pricing "Public IP" | Allocate a public IP |
eci network ip attach <ip|uuid> --nic <name|uuid> / ip detach <ip|uuid> | Attach / detach a public IP to a NIC |
eci network ip delete <ip|uuid> | Release a public IP |
Storage — block
| Command | Description |
|---|---|
eci storage block list | List block storage volumes |
eci storage block create --name <n> --size-gib <N> --pricing "Block Storage" | Create a data volume (separate from the OS disk) |
eci storage block attach <name|uuid> --vm <name|uuid> / block detach <name|uuid> | Attach / detach a volume to a VM |
eci storage block delete <name|uuid> | Delete a volume. Any associated snapshots must be deleted first |
eci storage block snapshot create --name <n> --block <name|uuid> | Create a one-off snapshot (note the option is --block) |
eci storage block snapshot list --block-storage <name|uuid> | List snapshots for a volume (note this option is --block-storage) |
eci storage block snapshot delete <name|uuid> | Delete a snapshot |
eci storage block scheduler create --name <n> --block <name|uuid> --cron <"..."> --max-snapshots <N> | Register a scheduled-snapshot job (cron syntax) |
eci storage block scheduler list --block-storage <name|uuid> | List schedulers |
eci storage block scheduler delete <name|uuid> | Delete a scheduler |
Storage — object
| Command | Description |
|---|---|
eci storage object list | List object storage buckets |
eci storage object create --name <n> --size-gib <N> | Create a bucket (specify allocated capacity) |
eci storage object delete <name|uuid> | Delete a bucket |
eci storage object user list | List object-storage-only users (separate from IAM) |
eci storage object user create --name <n> | Create a user (S3-compatible credentials) |
eci storage object user delete <name|uuid> | Delete a user (revoke any grants first) |
eci storage object user grant list | List bucket-to-user permission grants |
eci storage object user grant create --bucket <name|uuid> --user <name|uuid> --permission read_write|read_only | Grant a user access to a bucket |
eci storage object user grant delete <uuid> | Revoke a grant (uses UUID) |
Storage — PFS
| Command | Description |
|---|---|
eci storage pfs list | List parallel file systems |
eci storage pfs create --name <n> --size-gib <N> | Create a PFS. The organization quota must include PFS capacity |
eci storage pfs member create --pfs <name|uuid> --vm <name|uuid> | Add a VM as a member (a PFS can be mounted from multiple VMs) |
eci storage pfs delete <name|uuid> | Delete a PFS |
vm-spec (launch templates)
Save frequently used launch option sets locally (~/.eci/config.yaml) under a name and reuse them.
| Command | Description |
|---|---|
eci vm-spec list / show <name> | List / show saved launch templates (specs are local, referenced by name only) |
eci vm-spec save <name> [...flags] | Save a launch template (instance type, image, disk, etc.). --force overwrites |
eci vm-spec delete <name> | Delete a template |
Common options for list / get
| Option | Description |
|---|---|
--format {table,json,csv} | Output format (default table). JSON/CSV are for scripting |
--query col1,col2,... | Pick columns to display (ignores the default column set) |
--name-ilike <pattern> | Substring match on name (case-insensitive) |
--status <status> | Filter by status |
--zone <name|uuid> | Restrict to one zone |
--ids <uuid1,uuid2> | Specify multiple UUIDs |
--tags <k=v> | Filter by tag key/value |
--created-ge / --created-le <iso8601> | Creation-time range (ISO 8601) |
In JSON output,
*_idfields are auto-resolved to names (e.g.zone_id→zone).
Environment variables
| Variable | Description |
|---|---|
ECI_API_ENDPOINT | API base URL. Takes precedence over the config file |
ECI_API_TOKEN | Bearer token. Convenient for CI / containers |
ECI_ZONE_ID | Default zone — UUID or name |
ECI_CONFIG | Config file path (default ~/.eci/config.yaml) |
ECI_DEBUG | 1 prints internal warnings to stderr (debugging) |
Common workflows
Launch → connect → clean up
eci compute vm launch --name my-vm --instance-type C-2 --password '<password>' --wait
eci compute ssh my-vm
eci compute vm delete my-vm --cascade
Launch several VMs with the same spec
eci vm-spec save my-spec --instance-type C-2 --image "Ubuntu 24.04 LTS (Standard)" --size-gib 20
eci compute vm launch --name my-vm-1 --spec my-spec --password '<password>'
eci compute vm launch --name my-vm-2 --spec my-spec --password '<password>'
Add a data disk with nightly snapshots
eci storage block create --name data --size-gib 50 --pricing "Block Storage"
eci storage block attach data --vm my-vm
eci storage block scheduler create --name nightly --block data \
--cron "0 0 * * *" --max-snapshots 7
Create a bucket and grant a user access
eci storage object create --name my-bucket --size-gib 100
eci storage object user create --name alice
eci storage object user grant create --bucket my-bucket --user alice --permission read_write
Related docs
- Overview — install, configuration, and command overview
- Quickstart — three step-by-step workflows