Releases: zsoftly/zcp-cli
0.0.9
zcp 0.0.9 Release Notes
What's New
Environment variable support
All create commands now respect environment variables for the three most commonly repeated flags. Set them once and every command picks them up:
export ZCP_CLOUD_PROVIDER=zcp
export ZCP_REGION=yow-1
export ZCP_PROJECT=my-project
# Before: every command needed all 3 flags
zcp instance create --name my-vm --cloud-provider zcp --region yow-1 --project my-project --template ubuntu-22f --plan bp-4vc-8gb --billing-cycle hourly --storage-category nvme --blockstorage-plan 50-gb-2
# Now: just the resource-specific flags
zcp instance create --name my-vm --template ubuntu-22f --plan bp-4vc-8gb --billing-cycle hourly --storage-category nvme --blockstorage-plan 50-gb-2Works across all create commands: instance, volume, vpc, network, kubernetes, dns, loadbalancer, autoscale, snapshot, vm-snapshot, vm-backup, virtual-router, vpn, iso, affinity-group, template, backup.
Zero-config mode
The CLI can now run with just environment variables — no config file needed:
export ZCP_BEARER_TOKEN=your-token
export ZCP_API_URL=https://api.zcp.zsoftly.ca
zcp region listAll new environment variables
| Variable | Overrides | Example |
|---|---|---|
ZCP_BEARER_TOKEN |
Profile bearer_token |
export ZCP_BEARER_TOKEN=abc123 |
ZCP_API_URL |
Profile api_url |
export ZCP_API_URL=https://... |
ZCP_PROFILE |
Active profile (when --profile not set) |
export ZCP_PROFILE=staging |
ZCP_PROJECT |
--project flag |
export ZCP_PROJECT=my-project |
ZCP_REGION |
--region flag |
export ZCP_REGION=yow-1 |
ZCP_CLOUD_PROVIDER |
--cloud-provider flag |
export ZCP_CLOUD_PROVIDER=zcp |
ZCP_OUTPUT |
--output flag |
export ZCP_OUTPUT=json |
ZCP_DEBUG |
--debug flag |
export ZCP_DEBUG=true |
Precedence: CLI flag > environment variable > profile config > default.
Bug fix: Kubernetes create
--billing-cycle validation was accidentally removed in v0.0.8. Restored — the API requires it (confirmed via Postman collection).
Installation
macOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashWindows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexFull Changelog: 0.0.8...0.0.9
0.0.8
zcp 0.0.8 Release Notes
What's New
VPC create fixed
VPC creation now works with the correct payload structure:
zcp vpc create \
--name my-vpc \
--cloud-provider nimbo \
--region noida \
--project default-124 \
--plan vpc-1 \
--network-address 10.1.0.1 \
--size 16 \
--billing-cycle hourly \
--storage-category nvmeKey: --network-address is just the IP (not CIDR notation), --size is the mask separately.
ACL list creation fixed
zcp vpc acl-create and zcp acl create now correctly create ACL lists:
zcp vpc acl-create my-vpc --name allow-web --description "Allow HTTP"
zcp acl create my-vpc --name private-acl --description "Deny all inbound"Create commands gain required flags
--cloud-provider, --region, --project added to: network, vpc, virtualrouter, dns, vpn, autoscale create commands.
Volume Size type fix
Volume list no longer fails when the API returns size as a number.
Roadmap published
See docs/roadmap.md for what's working, what's coming, and what's blocked on the platform.
Known limitations (blocked on platform)
These require API changes from the STKCNSL team:
- No DELETE endpoints for VPCs, networks, virtual routers, IP addresses, or ACL lists
- No ACL rule CRUD — can create ACL lists but not rules inside them
- Network create (isolated) —
networkofferingidnot resolvable for nimbo/noida - DNS create — needs admin-side
cloud_provider_setupprovisioning - billing cancel-service for VPCs — returns "service not found"
See docs/roadmap.md for full details.
Installation
macOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashWindows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexFull Changelog: 0.0.7...0.0.8
0.0.7
zcp 0.0.7 Release Notes
What's New
8 new commands
| Command | Description |
|---|---|
zcp region list |
List available regions (replaces zone list) |
zcp profile-info |
User profile, company details, time settings, API access, activity logs (2FA status via get) |
zcp vm-backup list/create |
VM backup operations |
zcp cloud-provider list |
List available cloud providers |
zcp server list |
List available servers |
zcp currency list |
List available currencies |
zcp billing-cycle list |
List available billing cycles |
zcp storage-category list |
List available storage categories |
Dead code removed
11 commands and 13 API packages that still pointed at old /restapi/ endpoints have been removed. These commands were broken since v0.0.6 and would return 403 errors:
zone, offering, resource, host, cost, usage, internal-lb, snapshot-policy, security-group, tag, admin
Use the STKCNSL replacements instead:
| Old command | Replacement |
|---|---|
zcp zone list |
zcp region list |
zcp offering compute |
zcp plan vm |
zcp offering storage |
zcp plan storage |
zcp cost summary |
zcp billing costs |
zcp usage list |
zcp billing monthly-usage |
zcp tag create |
zcp instance tag-create |
zcp admin list-accounts |
Not available via API |
Auth validate fixed
zcp auth validate now correctly hits the STKCNSL region API instead of the dead zone API.
42 total commands
The CLI now has 42 commands, all backed by the STKCNSL API with zero legacy code remaining.
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.6...0.0.7
0.0.6
zcp 0.0.6 Release Notes
What's New
API backend migration
The CLI now communicates with the STKCNSL API backend, replacing the previous STKBILL backend. This is a breaking change for configuration files — existing profiles using apikey/secretkey must be recreated with bearer_token.
Bearer token authentication
Authentication now uses a single bearer token instead of separate API key and secret key. Update your profiles:
zcp profile add default --bearer-token YOUR_TOKENConfig files now use bearer_token instead of apikey/secretkey.
15 new command groups
| Command | Description |
|---|---|
zcp dns |
DNS domain and record management |
zcp project |
Project management with users and dashboards |
zcp monitoring |
Global and per-VM resource monitoring |
zcp billing |
Costs, invoices, subscriptions, coupons, budget alerts |
zcp support |
Support tickets, replies, feedback, FAQs |
zcp autoscale |
VM autoscale groups with policies and conditions |
zcp dashboard |
Account service counts overview |
zcp plan |
Service plans for all resource types |
zcp store |
Store items and checkout |
zcp marketplace |
Marketplace app listing |
zcp product |
Product categories and listing |
zcp iso |
ISO image management |
zcp affinity-group |
Affinity group management |
zcp backup |
VM and block storage backups |
zcp region |
Region listing |
Expanded existing commands
- instance: reboot, reset, tags, change-hostname, change-password, change-plan, change-OS, add-network, addons
- instance create: now requires
--blockstorage-planflag (e.g.50-gb-2,100gb) - project: added
deletesubcommand with confirmation prompt - billing cancel-service: now requires
--serviceflag and supports--reason,--type - network: egress firewall rule management
- vpc: ACL management, VPN gateway management
- loadbalancer: rule creation, VM attachment to rules
- Discovery: cloud-providers, currencies, storage-categories, billing-cycles, unit-pricings
Auto-approve for CI/CD
All destructive commands now respect the global --auto-approve (or -y) flag, skipping confirmation prompts. Useful for scripting and automation pipelines:
zcp -y project delete my-project
zcp -y billing cancel-service my-vm --service "Virtual Machine"RESTful API with pagination
All endpoints now use clean RESTful paths with slug identifiers. List responses include pagination metadata (current_page, per_page, total).
VM creation example
zcp instance create \
--name my-vm \
--cloud-provider nimbo \
--project my-project \
--region noida \
--template ubuntu-22f \
--plan bp-4vc-8gb \
--billing-cycle hourly \
--storage-category nvme \
--blockstorage-plan 50-gb-2 \
--ssh-key my-keyBreaking Changes
- Config format:
apikey/secretkeyreplaced bybearer_token. Runzcp profile addto reconfigure. - Zone commands:
zcp zone liststill works butzcp region listis the new canonical command. - UUID flags: Flags like
--zone-uuid,--uuidreplaced by slug-based identifiers.
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.5...0.0.6
0.0.5
zcp 0.0.5 Release Notes
What's New
Delete verification
Delete commands now verify the resource is actually removed. Previously, the API could
return success (HTTP 204) while silently failing — the CLI would report "deleted" when
the resource was still there. Now affected commands check after delete and warn if the
resource still exists.
Applies to: vpc delete, network delete, volume delete, security-group delete
Volume list deduplication
The API sometimes returns duplicate entries for the same volume. The CLI now deduplicates
by UUID before displaying results.
Friendlier error messages
snapshot createon a detached volume now says:
volume must be attached to a running instance before taking a snapshot
instead of the raw CloudStack error.firewall liston accounts with no IP addresses now returns an empty table
instead ofAPI error 412: Invalid IpAddress Details.
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.4...0.0.5
0.0.4
zcp 0.0.4 Release Notes
What's New
VPC tier network commands
Create and update networks inside a VPC using the dedicated StackBill endpoint
(/restapi/vpc/createVpcNetwork):
zcp vpc create-network --vpc <uuid> --name my-tier --offering <uuid> \
--gateway 10.1.1.1 --netmask 255.255.255.0 --acl <uuid>
zcp vpc update-network <network-uuid> --offering <uuid> --name new-nameThis resolves the VPC tier creation issue — the previous network create endpoint
(/restapi/network/createNetwork) is for isolated networks only.
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.3...0.0.4
0.0.3
zcp 0.0.3 Release Notes
What's New
API field type fixes
Fixed JSON unmarshal errors across multiple resources where the live API returns
different types than the OpenAPI spec documents:
volume—createdTimeStamp(string to int64)host—cpuCores,vmCount(int to string)kubernetes—minMemory,minCpuNumber(string to int)vpc/network— CIDR field name corrected (getcIDRtocIDR)
New host list command
zcp host listLists all hypervisor hosts with CPU cores, VM count, and status.
Network create supports VPC tiers
zcp network create --name my-tier --offering <uuid> --vpc <uuid> \
--gateway 10.1.1.1 --netmask 255.255.255.0New flags: --vpc, --gateway, --netmask, --acl
Resource quota subcommand
zcp resource quotaIntegration test suite
Full lifecycle tests against the live API:
go test -tags integration -v -timeout 30m ./tests/integration/Other fixes
snapshot-policy listnow requires--volume(matches API spec)network.IsPublicmoved from body to query parameter (matches API spec)- VPC
descriptionandpublicLoadBalancerProvidernow required in create
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.2...0.0.3
0.0.2
zcp 0.0.2 Release Notes
What's New
Default zone per profile
Stop passing --zone on every command. Set it once:
zcp zone list # find your zone UUID
zcp zone use <uuid> # save it to your active profileEvery command that previously required --zone now falls back to the profile default
automatically. You can still override per-command:
zcp instance list # uses default zone
zcp instance list --zone <uuid> # overrides for this callTo clear the default:
zcp zone use ""Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bashManual Install
Download the binary for your platform from the assets below, make it executable, and move it to your PATH.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | zcp-linux-amd64 |
| Linux | arm64 | zcp-linux-arm64 |
| macOS | amd64 | zcp-darwin-amd64 |
| macOS | arm64 | zcp-darwin-arm64 |
| Windows | amd64 | zcp-windows-amd64.exe |
| Windows | arm64 | zcp-windows-arm64.exe |
Full Changelog: 0.0.1...0.0.2
0.0.1
Full Changelog: https://github.com/zsoftly/zcp-cli/commits/0.0.1