Run your cloud without leaving the terminal
Stop tab-switching to a dashboard to ship a server. ccm deploys, restarts, and tears down VPS instances, checks your balance, and browses the catalog — straight from your shell, with JSON output and exit codes built for scripts and CI.
From zero to deployed in three commands
No SDK to wire up and no glue code to maintain. Install the binary, log in with an API key from your dashboard, and you're managing servers.
- Single npm install, runs on macOS, Linux & Windows
- Credentials stored locally, or read from environment variables
- Named profiles to switch between accounts and environments
# Install once, globally
npm install -g cloudcenmax-cli
# Authenticate with an API key from your dashboard
ccm login
# Deploy a server and watch it come up
ccm resources deploy --sku vm.o.11.100 --name web-prod
ccm resources list
Generate ck_… keys from your dashboard under API keys.
Everything you'd open the dashboard for
The CLI calls the same governed API that powers the web app — so it can do exactly what your account can, nothing more.
Deploy servers
Spin up a VPS from any catalog plan: ccm resources deploy --sku … --name web-prod.
Control the lifecycle
Start, stop, reboot, or terminate any server, with status read back to confirm the change.
Browse the catalog
List and filter plans by provider, location, and module before you commit to a deploy.
Watch your spend
Pull live balance, ledger entries, and deposit history without opening the billing page.
Top up the account
Kick off a deposit so a provisioning request never stalls on a low balance.
Run provider actions
Open a VNC console, reinstall, enter rescue mode, and more — discover what each server supports.
Manage object storage
Create, list, and delete S3-compatible buckets: ccm resources buckets create <id> --name … --region …
Readable by humans, parseable by pipelines
Every command prints a clean table by default and raw JSON with --json, so the same tool works at your prompt and inside a build. Distinct exit codes — auth, permission, balance, bad state — let CI fail loudly instead of guessing.
- --json output pipes straight into jq and your tooling
- --all follows pagination so you never miss a page
- Set CCM_API_KEY in CI — no interactive login needed
# Pipe live data straight into your tooling
ccm resources list --json | jq -r '.[] | select(.status=="active").name'
# Stable exit codes for CI gates (2=auth, 3=permission, 4=balance…)
ccm account --json || echo "blocked, exit $?"
# Keep prod and staging keys side by side
ccm resources list --profile staging
Full control, scoped to a single key
The CLI authenticates with the same API key you'd use anywhere else. That key decides what's possible — hand a read-only key to a script that only reports, or a write key to one that deploys.
Read-only keys browse and report but can't change anything. Write access is opt-in, per key.
Keys are displayed a single time and stored only as a hash — revoke and rotate any time.
Credentials live in your config file or environment. Nothing is shipped to a third party.
Requests are throttled and locked to your organization — no cross-account access, ever.
Questions, answered
Does the CLI cost anything?
No. The tool is free. You only pay the same hourly rate for the servers you actually run.
What do I need to install?
Node 18 or newer, then one npm install. The CLI runs on macOS, Linux, and Windows.
Does it do everything the dashboard does?
It covers the full public API — account, catalog, the complete server lifecycle, provider actions, ledger, and deposits.
Is it safe to put my key in CI?
Yes. Set CCM_API_KEY as a secret and scope it read-only or write as needed. Revoke it from your dashboard at any time.
Can I manage more than one account?
Yes. Named profiles let you keep prod, staging, and separate organizations side by side and switch with --profile.
Is the output stable enough to script against?
Use --json for machine-readable output and rely on the documented exit codes — they won't shift under you.
Ship your next server from the command line
Create an account, generate an API key, and install the CLI in minutes. Hourly billing, no contracts, cancel anytime.