Why there's a vps9 CLI

We built a command-line tool alongside the panel, on the same public API. What it does, why the API came first, and where to get it.

The first VPSNine ran on SolusVM, like a lot of small hosts at the time. You got a web panel, and that was the main way in. Fine for clicking reboot. Less fine if you wanted to automate anything.

The people who rent a VPS are, by and large, people who already have a terminal open. So this time there's a command-line tool, vps9, built alongside the panel from the start.

What it looks like

bash
vps9 servers create --plan standard --image debian-12 --hostname web-1 --key key_m2q7x4abcdefgh2s
vps9 ssh web-1
vps9 rdns web-1 set 203.0.113.42 mail.example.com
vps9 snapshots web-1 create before-upgrade
vps9 servers --json | jq -r '.[].hostname'

It's one binary, written in Go, with no runtime to install. Output is plain text by default and JSON when you add --json, so it pipes into jq without a fight. Errors say what went wrong and what to do about it, and the exit code tells a script whether the command line itself was wrong (2) or the command failed (1).

Anything that destroys data, like deleting a server or reverting a snapshot, asks you to type the server's hostname first. --yes skips that for scripts.

The API comes first

The CLI doesn't get any special access. It uses the same public API you can call with curl, with the same tokens and the same rules. If vps9 can do something, so can your own script, and the other way round.

The temptation with an in-house tool is always to add a private shortcut "just for now". Then the shortcut becomes the only way to do something, and the public API slowly rots. Building the CLI only on the public API means we hit every rough edge before you do.

The panel works the same way in spirit. It's server-rendered HTML forms rather than an API client, but the forms and the API go through the same code underneath. Adding an SSH key in the panel and adding one through the API hit exactly the same checks.

Where things stand

When this post first went up, the CLI wasn't written and the API only covered your account and SSH keys. Both have caught up since. The API now covers servers, firewalls, snapshots, reverse DNS and invoices; the API quickstart has working curl examples, and the full reference lists every endpoint.

vps9 is built for Linux, macOS and Windows. Downloads open at launch, along with orders. Install the vps9 command-line tool covers the download, the checksum and logging in with a token.

Why not just use the panel?

Because a panel is for doing something once, and a terminal is for doing it the tenth time.

Think of spinning up a test box for an afternoon, rebuilding a server from CI, or setting reverse DNS on twenty addresses without clicking forty times. Those are terminal jobs, and they deserve a proper tool, not a script scraping our HTML.

Be first when orders open

Join the waitlist and we'll send you one email when VPSNine launches. Pick a plan if you already know which one you want, and we'll size the first servers around it.