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/clito update,npm rm -g @bitqate/clito remove. - Binary: download a newer release and replace the file.
- Config stays under
~/.config/bitqateuntil you delete it.
Still stuck?
Our team can look at your specific setup.