Skip to main content
The Sevalla CLI, sevalla, manages your Sevalla services from a terminal or a CI job. It covers the Sevalla API: applications, deployments, processes, domains, environment variables, logs, metrics, databases, static sites, load balancers, object storage, pipelines, projects, webhooks and API keys. The current version is 1.10.1. This page covers installing, signing in and the commands you use most; the CLI reference lists every command.

Install the CLI

Run sevalla --version to check the installed version. The Homebrew, shell script and Windows installs print the version number; an npm install prints 0.0.0-dev, so check it with npm ls -g @sevalla/cli.

Sign in

sevalla login signs you in through the browser, with no token to copy:
1

Start the sign-in

Run sevalla login. The CLI prints a device code and opens https://app.sevalla.com/authorize in your browser. If the browser doesn’t open, visit the URL it prints.
2

Authorize the CLI

In the dashboard, check that the device code matches. If you belong to more than one company, select the company. Under Set permissions, choose a Predefined role or Custom capabilities, then click Authorize.
The CLI prints Successfully logged in!. Run sevalla auth status to check: it shows Authenticated (source: credentials_file). The code expires after 5 minutes; if it does, run sevalla login again. Signing in creates an API key in the company you picked, with the permissions you chose and no expiration. The CLI stores it in ~/.config/sevalla/credentials.json, readable only by you (0600). sevalla logout deletes that file, but not the key: to revoke the key, delete it under Tools > API keys.

Use an API key in CI

In CI and other places without a browser, create an API key with only the permissions the job needs, and pass it in SEVALLA_API_TOKEN. The variable takes priority over the stored credentials.
sevalla auth status then shows Authenticated (source: environment). Store the key in your CI provider’s secrets, never in the repository.

Common commands

IDs are UUIDs. sevalla apps list, sevalla static-sites list and sevalla databases list show them, and the dashboard shows them on a service’s Settings tab. Run sevalla <command> --help for a command’s arguments and options.

Common options

Use JSON output in scripts

List commands print the array of items, other commands the object the API returns. Errors go to stderr (as JSON in JSON mode), and the command exits with a non-zero status. Parse JSON with jq:
To deploy from a CI job and wait for the result:
deploy.sh
For GitHub, the Sevalla GitHub Action does the same in one step.

Use the CLI from an AI agent

The CLI is built to be driven by agents as well as people:
  • sevalla schema prints the whole command tree as JSON (arguments, options, descriptions and defaults), and sevalla schema apps.create prints one command.
  • Authenticate with SEVALLA_API_TOKEN rather than sevalla login, which needs a browser.
  • Use --dry-run to check a mutation before running it.
For agents that speak MCP, the Sevalla MCP server is usually the better fit.

Shell completion

Update or uninstall

Uninstalling doesn’t delete ~/.config/sevalla/credentials.json or the API key behind it. Run sevalla logout first, then delete the key under Tools > API keys. The source code and release notes are on GitHub.