Browse docs

Install and set up the BitQate CLI

Install the bitqate command-line tool, connect it to your account with an API token, and run your first commands.

Updated

On this page

The bitqate CLI manages your VPSes and container servers from a terminal: create, power, resize, back up, deploy and SSH in. Everything it does is also available in the dashboard, and it works with scoped API tokens so you can give it exactly as much access as you want.

1. Install it

Pick one of three ways.

npm (needs Node 20 or later):

npm i -g @bitqate/cli

Standalone binary from the releases page. Download the binary for your platform and SHA256SUMS, verify it, then put it on your PATH:

curl -LO https://github.com/bitqate/cli/releases/latest/download/bitqate-linux-x64
curl -LO https://github.com/bitqate/cli/releases/latest/download/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
chmod +x bitqate-linux-x64
sudo mv bitqate-linux-x64 /usr/local/bin/bitqate

On macOS, sha256sum isn't installed by default; use shasum instead and compare the output with the matching line in SHA256SUMS:

shasum -a 256 bitqate-darwin-arm64

There are binaries for bitqate-linux-x64, bitqate-linux-arm64, bitqate-darwin-x64, bitqate-darwin-arm64 and bitqate-windows-x64.exe. On Windows, save it as bitqate.exe anywhere on your PATH.

From source (needs Bun or Node 20+):

git clone https://github.com/bitqate/cli.git
cd cli
bun install && bun run build

The built file is dist/bitqate.js with a #!/usr/bin/env node shebang; link it onto your PATH however you like.

2. Create an API token

In the dashboard, open Settings → API (go there) and create a token. Give it a name, choose the scopes you actually need, and set an expiry for anything used in automation.

Scopes decide what the token can do. For example vms:read lists your VPSes, servers:write creates and resizes servers, and servers:delete removes them. The CLI reference has the full table, including which scopes can charge your balance.

3. Log in

bitqate auth login

The CLI prints the token page URL, then asks for the token without echoing it. On success it verifies the token against the API and stores it:

✓ Logged in as rob · token "cli" · 9 scopes · profile default

In a script or on a headless machine, pipe the token on stdin instead:

bitqate auth login --token-stdin < token.txt

Check what the CLI is using with:

bitqate auth status

It shows the token name, its scopes, its expiry, the profile it came from and the API URL it will be sent to.

4. Profiles

You can keep several tokens; it for example a personal one and a scoped CI one; it as named profiles. --profile picks which profile a command reads (or which one auth login writes), and BITQATE_PROFILE does the same from the environment.

bitqate auth login --profile ci --token-stdin < ci-token.txt
bitqate auth list
bitqate auth switch ci
bitqate auth logout --profile ci

The active profile is whichever auth switch last selected, or the one you logged in to most recently.

5. Where config lives

Profiles are stored in ~/.config/bitqate/config.json (or BITQATE_CONFIG_DIR if you set it). The directory is 0700 and the file 0600, so only your user can read them. A profile token is only ever sent to the API URL it was saved with; it see Use the CLI in scripts, CI and AI agents for the details.

6. First commands

bitqate

On a terminal this prints your account, a running/online count of your deployments, then the command list. Two read commands to try:

bitqate vms list
bitqate servers list

Add --json to any command for machine-readable output. Every command has --help, for example bitqate vms create --help.

Update and uninstall

  • npm: npm update -g @bitqate/cli to update, npm rm -g @bitqate/cli to remove.
  • Binary: download a newer release and replace the file.
  • Config stays under ~/.config/bitqate until you delete it.

Still stuck?

Our team can look at your specific setup.