Skip to content

VarityKit CLI Overview

Varity Team Core Contributors Updated May 2026

VarityKit is a Python-based CLI that helps you deploy and manage applications. If you have used tools like the Vercel CLI, Netlify CLI, or Firebase CLI, you will feel right at home.

Deploy Applications

Deploy any Node or Python app with one command. Static sites and dynamic apps both supported.

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 roll back to a previous version.

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 devStart development servers (API + frontend)
varitykit bootstrapInstall project dependencies and set up 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 statusShow deployment status
varitykit app rollbackRollback to a previous 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.8 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, starting around $5/mo
  • 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
  • Features: Containers, scaling, persistence

The orchestration algorithm 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+
React (Vite)
React (CRA)
Vue 3+
Express, Fastify, Nest, Koa, HonoN/A
FastAPI, Django, FlaskN/A

Not yet supported: Go, Rust, Ruby / Rails, Elixir / Phoenix, Java / Spring, Deno, PHP / Laravel, .NET. These will not be auto-detected and deployment will fail with an unsupported-language error. Request support for your framework.

Start development servers (API + frontend) with hot-reload:

Terminal window
varitykit dev [OPTIONS]
OptionDefaultDescription
--projectmarketingFrontend project to run
--api-onlyfalseRun only the API server
--frontend-onlyfalseRun only the frontend
--port3001API server port

Install project dependencies and set up the environment:

Terminal window
varitykit bootstrap [OPTIONS]
OptionDescription
--skip-npmSkip npm install
--skip-pipSkip pip install
--skip-dockerSkip Docker setup

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