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)
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
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 (auto-detects static vs dynamic)
varitykit app deploy
# 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:

Terminal window
varitykit app deploy
  • Best for: Marketing sites, documentation, SPAs
  • Cost: One flat monthly cost per app. Your bill on day 1 equals your bill on day 1000. See the pricing calculator.
  • 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: One flat monthly cost per app, based on the hardware you reserve. See the pricing calculator.
  • 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