CLI Reference
Vessl ships two CLI tools with distinct responsibilities.
| Tool | Runs on | Connects to |
|---|---|---|
vessld |
Your VPS / server | SQLite + Docker directly |
vessl |
Your local machine | vessld over HTTP |
vessld — Server Daemon CLI
Section titled “vessld — Server Daemon CLI”The vessld binary is the Vessl server process. It runs on your VPS and exposes the HTTP API that the dashboard and the vessl remote CLI consume. It also doubles as a management CLI for direct server-side operations without needing the dashboard.
Server Commands
Section titled “Server Commands”Starts the Vessl daemon. This is the default command when no subcommand is provided.
vessld serveRuns the interactive setup wizard to initialise the database and create the initial admin account.
vessld setupreset-password
Section titled “reset-password”Resets the password for the admin account. Useful if you lose access to the dashboard.
vessld reset-passwordconfig
Section titled “config”View or update global server configuration variables.
vessld configrestart
Section titled “restart”Gracefully restarts the Vessl daemon via Docker Compose.
vessld restartRuns the Model Context Protocol (MCP) server over standard I/O for AI assistant integrations.
vessld mcpversion
Section titled “version”Prints the current daemon version.
vessld versionDeployment Commands
Section titled “Deployment Commands”deploy
Section titled “deploy”Deploy an application directly from the server terminal.
# From a Git repositoryvessld deploy https://github.com/your/repo.git
# From a template (e.g. go-fiber, nextjs)vessld deploy --template nextjs
# From a Docker imagevessld deploy --image nginx:latest --port 80
# From a Docker Compose filevessld deploy --compose ./docker-compose.ymlResource Management Commands
Section titled “Resource Management Commands”All resource commands use a <resource>:<action> syntax and interact with the database directly — no HTTP, no auth required.
Projects
Section titled “Projects”vessld project:list # List all projectsvessld project:show <id> # Show project detailsvessld project:create <name> # Create a projectvessld project:destroy <id> # Delete a projectApplications
Section titled “Applications”vessld apps:list # List all apps across all projectsvessld apps:show <id> # Show app details and env varsvessld apps:create <name> --project <id> # Create an appvessld apps:destroy <id> # Delete an appDatabases
Section titled “Databases”vessld db:list # List all databasesvessld db:show <id> # Show database details and connection stringvessld db:create <name> <engine> --project <id> # Create a databasevessld db:destroy <id> # Delete a databaseSupported engines: postgres, mysql, mariadb, redis, mongodb, clickhouse, kafka, rabbitmq, nats.
Environment Variables
Section titled “Environment Variables”vessld env:list --project <id> # List all env vars for a projectvessld env:set KEY=VALUE --project <id> # Set one or more env varsvessld env:unset KEY --project <id> # Remove an env varDeployments & Logs
Section titled “Deployments & Logs”vessld deployment:list --service <id> # List deployment history for a servicevessld deployment:show <id> # Show deployment detailsvessld deployment:logs <id> # Print build logs for a deploymentCustom Domains
Section titled “Custom Domains”vessld domain:list --project <id> # List custom domains for a projectvessld domain:add <hostname> --project <id> # Add a custom domainvessld domain:remove <id> # Remove a custom domainvessl — Remote CLI
Section titled “vessl — Remote CLI”The vessl binary runs on your local machine and communicates with your self-hosted vessld server over HTTP. This is what you install and use day-to-day from your laptop.
Installation
Section titled “Installation”curl -fsSL https://get.vessl.dev/cli | shOr if you have Go installed:
go install vessl.dev/vessl/cmd/vessl@latestOr download a pre-built binary from the releases page.
Authentication
Section titled “Authentication”Before running any command, authenticate against your self-hosted server.
Prompts for your server URL, email, and password. Saves a token to ~/.vessl/config.json.
vessl loginlogout
Section titled “logout”Clears your saved credentials.
vessl logoutShows the currently authenticated user.
vessl meProjects
Section titled “Projects”vessl project list # List all projectsvessl project create <name> # Create a projectvessl project destroy <id> # Delete a projectEnvironments
Section titled “Environments”vessl env list --project <id> # List environments for a projectvessl env create <name> --project <id> # Create an environmentvessl env destroy <id> # Delete an environmentApplications
Section titled “Applications”vessl apps list --environment <id> # List apps in an environmentvessl apps create # Create an app (interactive flags)vessl apps destroy <id> # Delete an appSecrets (Environment Variables)
Section titled “Secrets (Environment Variables)”vessl apps secrets list --project <id> # List env varsvessl apps secrets set KEY=VALUE --project <id> # Set one or more env varsCustom Domains
Section titled “Custom Domains”vessl apps domains list --project <id> # List custom domainsvessl apps domains add --domain <host> --project <id> # Add a domainvessl apps domains remove <id> # Remove a domainDeployments & Logs
Section titled “Deployments & Logs”vessl apps deployments list --service <id> # List deployment historyvessl apps logs <deployment-id> # View build logsDatabases
Section titled “Databases”vessl db list --project <id> # List databasesvessl db create # Provision a database (interactive flags)vessl db destroy <id> # Delete a databaseBackups
Section titled “Backups”vessl db backups list --project <id> # List backup configurationsvessl db backups create # Create a backup configvessl db backups trigger <id> # Trigger a manual backupvessl db backups history <id> # View backup historyTrigger a Deployment
Section titled “Trigger a Deployment”vessl deploy <service-id> # Trigger a remote deployment for a service