Skip to content

VarityKit CLI Overview Guide

Varity Team Core Contributors Updated June 2026

VarityKit is a Python-based CLI that helps you deploy and manage applications. It is a familiar deploy CLI: install it, log in, and ship.

Deploy Applications

Deploy supported Node, Python, Go, static, and Docker workloads with one command.

Migrate from Vercel

Move an existing Vercel app to Varity in one step: analyze, transform, and deploy.

Manage Deployments

List deployments, view status and logs, and redeploy a known-good version when needed.

Validate Setup

Run diagnostics to ensure your development environment is ready.

CommandDescription
varitykit loginLog in with your deploy key from the developer portal
varitykit doctorValidate your development environment
varitykit completionsSet up shell completions (bash, zsh, fish)
varitykit bootstrapInstall a cloned project’s npm and pip dependencies (--skip-npm, --skip-pip, --skip-docker)
CommandDescription
varitykit auth loginLog in with your deploy key
varitykit auth logoutRemove saved credentials
varitykit auth statusShow current login status
CommandDescription
varitykit app deployDeploy your application
varitykit app listList all deployments
varitykit app infoShow deployment details
varitykit app delete --yesDelete a deployment
varitykit app status [RUN_ID]Show one deployment operation or your most recent deployment
varitykit app templatesList certified templates (--json for the raw catalog)
varitykit app env NAME KEY=VALUE...Set environment variables on a live app, then redeploy in place (--replace overwrites the set)
varitykit app redeploy NAMEReapply the saved configuration on the same URL
varitykit app restart NAMERestart with a verified replacement on the same URL
varitykit app rollback DEPLOYMENT_IDRedeploy an earlier configuration (--confirm skips the prompt)
CommandDescription
varitykit domains listList all domains you own on varity.app
CommandDescription
varitykit migrate --url <github-url>Clone a GitHub repo and migrate it to Varity (analyze + transform + deploy)
varitykit migrate --path <path>Migrate a local Vercel project directory
varitykit migrate --dry-runPreview what would change without modifying files
varitykit migrate --no-deployApply codemods only, skip deployment
varitykit migrate analyze <path>Scan for Vercel artifacts (read-only preview)
varitykit migrate apply <path>Apply codemods without deploying
varitykit migrate rollback <path>Restore files from .vercel-migration-backup/
Terminal window
# Install the CLI
pipx install varitykit
# Check your environment
varitykit doctor
# Log in with your developer portal deploy key
varitykit login
# Deploy from the GitHub repo of the current checkout (auto-detects static vs dynamic)
varitykit app deploy
# Or name the source explicitly
varitykit app deploy --repo-url https://github.com/you/my-app
varitykit app deploy --image ghcr.io/you/app:latest --port 8080
varitykit app deploy --template agent-zero --name my-agent
# Or force a specific mode
varitykit app deploy --hosting dynamic
varitykit app deploy --hosting static

All commands support these global options:

Terminal window
varitykit [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the CLI version
-v, --verbose Enable verbose output
--debug Enable debug output
--json Output in JSON format
--help Show help message
  • Python: 3.11 or higher
  • Node.js: 20+ (for building JavaScript projects)

Deploy static websites and single-page applications from their GitHub repository:

Terminal window
varitykit app deploy --repo-url https://github.com/you/my-site
  • Best for: Marketing sites, documentation, SPAs
  • Cost: First 3 static sites free, then $1/month per site, for verified accounts; 1 GB of pinned assets. See Pricing and Costs.
  • Speed: Global CDN distribution

Deploy full-stack applications with backend:

Terminal window
varitykit app deploy --hosting dynamic
  • Best for: APIs, databases, server-side rendering, AI agents, LLMs
  • Cost: Up to a fixed monthly maximum per app, prorated by running time, based on the resources you reserve. See Pricing and Costs.
  • Features: Containers, scaling, persistence

Varity auto-detects when your app needs dynamic hosting (Express, Fastify, Next.js SSR, FastAPI, Django, Flask, etc.) and selects it automatically. Use --hosting dynamic only to force the mode explicitly.

Varity currently auto-detects and deploys the following frameworks:

FrameworkStaticDynamic
Next.js 13+SupportedSupported
React (Vite)SupportedSupported
React (CRA)SupportedSupported
Vue 3+SupportedSupported
Express, Fastify, Nest, Koa, HonoNot applicableSupported
FastAPI, Django, FlaskNot applicableSupported
Go modulesNot applicableSupported
Plain static HTMLSupportedNot applicable
Runnable Docker/OCI HTTP imagesNot applicableSupported

Not yet source-built: Rust, Ruby / Rails, Elixir / Phoenix, Java / Spring, Deno, PHP / Laravel, .NET. These return a clean unsupported-stack error as source projects. Deploy them today with a runnable Docker/OCI image, or request source-build support.

Set up shell completions for the CLI:

Terminal window
varitykit completions [OPTIONS]
OptionDescription
--shellShell type: bash, zsh, or fish (auto-detected if omitted)
--installInstall completions to your shell config file