Simple VPS CLI
scli manages Simple VPS from your terminal and from scripts. It works through the same API as the Cloud Panel.
Install
Windows
In PowerShell. It puts scli.exe into %LOCALAPPDATA%\Programs\scli and adds that folder to your PATH, without admin rights:
irm https://serverscamp.com/scli/install.ps1 | iexIt prints the version when it is done, and scli works in that window and in new ones. ssh for scli vps ssh comes with Windows 10 and 11.
Linux and macOS
The script puts scli into /usr/local/bin and asks for sudo, or into ~/.local/bin where there is no sudo:
curl -fsSL https://raw.githubusercontent.com/serverscamp/scli/main/install.sh | sh
scli versionBy hand
Every build is in the latest release: Windows, Linux and macOS, Intel and ARM, with checksums.txt. Rename the file to scli (scli.exe on Windows) and put it in a folder on your PATH.
Sign in
Sign in once. scli shows a code and opens the Cloud Panel in your browser; allow it there, and the token is saved in ~/.scli/config.
scli auth loginOn a server without a browser, open the link it prints on any device where you are signed in. Or make a token in the Cloud Panel under Settings, API tokens and give it to scli:
scli auth login --api-key sc_...scli auth status checks the token and shows the balance; scli auth logout forgets it on this computer. The token itself works until you delete it in the Cloud Panel.
A first server
Save your public key, pick a plan and a system, and make the server. With --wait it returns when SSH answers, usually within a minute.
scli ssh-keys add laptop --file ~/.ssh/id_ed25519.pub
scli vps plans
scli vps images
scli vps create web-1 --plan vps2-1 --image ubuntu-26.04 --ssh-key laptop --wait
scli vps ssh web-1✓ Creating web-1-3f9a1c.vm.scamp.pro (12d46f8c-d66e-4163-99aa-1245d5b06e5b), IPv4 185.236.9.61
✓ Running. Sign in with: ssh [email protected]The name is 3 to 24 lowercase letters, digits and hyphens. The server gets the hostname NAME-xxxxxx.vm.scamp.pro, and wherever a command takes VPS you can give the name or the id.
Servers
| Command | What it does |
|---|---|
scli vps plans | Plans with their resources, price a month, backup price and stock |
scli vps images | Systems you can install |
scli vps ls | Your servers with status, plan and address |
scli vps show VPS | One server in full: plan, addresses, reverse DNS, uptime, traffic this month |
scli vps create NAME --plan PLAN --image IMAGE --ssh-key KEY | Makes a server. Add --password-stdin for a root password, --backups for daily backups, --wait to wait until SSH answers |
scli vps rm VPS | Deletes the server with its disk and backups. Asks you to type the name, or takes --yes |
scli vps summary | What all your VPS cost an hour and a month, and how long the balance lasts |
scli vps ssh VPS signs you in as root. Words after the name go to ssh as options, and a command after -- runs on the server:
scli vps ssh web-1 -i ~/.ssh/work_key -- uptimePower
Each one answers at once and the server does it in the background; add --wait to return when it is done. Right after a create or a reinstall the system needs about a minute before it takes shutdown and reboot.
| Command | What it does |
|---|---|
scli vps start VPS | Boots a stopped server |
scli vps shutdown VPS | Turns the system off cleanly |
scli vps stop VPS | Cuts the power |
scli vps reboot VPS | Restarts the system cleanly |
scli vps reset VPS | Restarts the server like the reset button |
Reinstall and resize
| Command | What it does |
|---|---|
scli vps reinstall VPS --image IMAGE --ssh-key KEY | Installs the system again and erases the disk. Takes --password-stdin, asks you to type the name or takes --yes |
scli vps resize VPS --plan PLAN | Moves to a bigger plan. The server restarts; the disk cannot shrink, so only bigger plans |
Reverse DNS
| Command | What it does |
|---|---|
scli vps ptr VPS HOSTNAME | Sets reverse DNS of the IPv4 and IPv6 addresses to your own domain |
scli vps ptr VPS --reset | Back to the default name, NAME-xxxxxx.vm.scamp.pro |
Backups
| Command | What it does |
|---|---|
scli vps backups VPS | Backups of the server, the daily schedule and a backup running now |
scli vps backups on VPS | Turns daily backups on; they add the backup share of the plan price |
scli vps backups off VPS | Turns daily backups off |
scli vps backup VPS | Backs up now. With --wait it returns when the backup is done |
scli vps restore VPS BACKUP | Puts the disk back to a backup. Asks you to type the name, or takes --yes |
scli vps backups rm VPS BACKUP | Deletes one backup |
Metrics
| Command | What it does |
|---|---|
scli vps metrics VPS | CPU, memory, network and disk for the last hour, a point a minute |
scli vps metrics VPS --timeframe day | The same for a day or a week (day, week) |
SSH keys
Wherever a command takes KEY, give the key's name or id.
| Command | What it does |
|---|---|
scli ssh-keys ls | Keys saved in your account |
scli ssh-keys add NAME --file ~/.ssh/id_ed25519.pub | Saves a public key. --key takes the key as text instead of a file |
scli ssh-keys show KEY | One key with its public part |
scli ssh-keys rm KEY | Deletes a key from the account. Servers that have it keep it |
In scripts
Every command takes --json and then prints the API answer as it came, the same as in the API reference. Errors go to stderr and the exit code is 1.
scli vps ls --json | jq -r '.items[] | select(.status == "running") | .ipv4'Commands that erase data ask you to type the server's name; in a script, add --yes. A root password goes in through stdin with --password-stdin, so it stays out of the shell history and the process list:
printf '%s\n' "$ROOT_PASSWORD" | scli vps create db-1 --plan vps2-2 --image debian-13 --password-stdin --waitscli vps create sends an Idempotency-Key and asks again with the same key when an answer is lost, so a dropped connection never makes a second server. To retry across runs of your own script, give the key yourself with --idempotency-key.
A server for one CI job:
export SCLI_API_KEY="$SERVERSCAMP_TOKEN"
scli vps create ci-runner --plan vps2-2 --image ubuntu-26.04 --ssh-key deploy --wait --json
# ... use it ...
scli vps rm ci-runner --yes --waitEnvironment
| Variable | What it does |
|---|---|
| SCLI_API_KEY | API token, used instead of the saved one. For CI and scripts |
| SCLI_API_URL | API address, https://platform.serverscamp.com by default |
| SCLI_NO_COLOR | No colors in the output; NO_COLOR works too |