Sign up

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 | iex

It 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 version

By 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 login

On 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

CommandWhat it does
scli vps plansPlans with their resources, price a month, backup price and stock
scli vps imagesSystems you can install
scli vps lsYour servers with status, plan and address
scli vps show VPSOne server in full: plan, addresses, reverse DNS, uptime, traffic this month
scli vps create NAME --plan PLAN --image IMAGE --ssh-key KEYMakes a server. Add --password-stdin for a root password, --backups for daily backups, --wait to wait until SSH answers
scli vps rm VPSDeletes the server with its disk and backups. Asks you to type the name, or takes --yes
scli vps summaryWhat 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 -- uptime

Power

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.

CommandWhat it does
scli vps start VPSBoots a stopped server
scli vps shutdown VPSTurns the system off cleanly
scli vps stop VPSCuts the power
scli vps reboot VPSRestarts the system cleanly
scli vps reset VPSRestarts the server like the reset button

Reinstall and resize

CommandWhat it does
scli vps reinstall VPS --image IMAGE --ssh-key KEYInstalls the system again and erases the disk. Takes --password-stdin, asks you to type the name or takes --yes
scli vps resize VPS --plan PLANMoves to a bigger plan. The server restarts; the disk cannot shrink, so only bigger plans

Reverse DNS

CommandWhat it does
scli vps ptr VPS HOSTNAMESets reverse DNS of the IPv4 and IPv6 addresses to your own domain
scli vps ptr VPS --resetBack to the default name, NAME-xxxxxx.vm.scamp.pro

Backups

CommandWhat it does
scli vps backups VPSBackups of the server, the daily schedule and a backup running now
scli vps backups on VPSTurns daily backups on; they add the backup share of the plan price
scli vps backups off VPSTurns daily backups off
scli vps backup VPSBacks up now. With --wait it returns when the backup is done
scli vps restore VPS BACKUPPuts the disk back to a backup. Asks you to type the name, or takes --yes
scli vps backups rm VPS BACKUPDeletes one backup

Metrics

CommandWhat it does
scli vps metrics VPSCPU, memory, network and disk for the last hour, a point a minute
scli vps metrics VPS --timeframe dayThe same for a day or a week (day, week)

SSH keys

Wherever a command takes KEY, give the key's name or id.

CommandWhat it does
scli ssh-keys lsKeys saved in your account
scli ssh-keys add NAME --file ~/.ssh/id_ed25519.pubSaves a public key. --key takes the key as text instead of a file
scli ssh-keys show KEYOne key with its public part
scli ssh-keys rm KEYDeletes 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 --wait

scli 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 --wait

Environment

VariableWhat it does
SCLI_API_KEYAPI token, used instead of the saved one. For CI and scripts
SCLI_API_URLAPI address, https://platform.serverscamp.com by default
SCLI_NO_COLORNo colors in the output; NO_COLOR works too