Metadata-Version: 2.2
Name: varitykit
Version: 2.1.9
Summary: Deploy any app. Flat-rate hardware-reserved hosting — your bill on day 1 equals your bill on day 1000.
Author-email: Varity Team <hello@varity.com>
License: MIT
Project-URL: Homepage, https://www.varity.so
Project-URL: Documentation, https://docs.varity.so
Keywords: varity,deploy,hosting,cli
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.31.0
Requires-Dist: rich>=13.0.0
Requires-Dist: toml>=0.10.2
Requires-Dist: jinja2>=3.1.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: authlib>=1.3.0
Requires-Dist: ecdsa>=0.18.0
Requires-Dist: python-jose>=3.3.0
Requires-Dist: PyJWT>=2.8.0
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.7.0; extra == "dev"
Requires-Dist: types-requests>=2.31.0; extra == "dev"
Requires-Dist: types-toml>=0.10.0; extra == "dev"
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
Requires-Dist: types-click>=7.1.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: autoflake>=2.2.0; extra == "dev"
Provides-Extra: all
Requires-Dist: docker>=6.0.0; extra == "all"
Requires-Dist: psutil>=5.9.0; extra == "all"

# varitykit

> Deploy any app — websites, APIs, AI agents — on a predictable flat monthly bill. Your cost on day 1 equals your cost on day 1000. No usage spikes, no traffic surprises.

[![PyPI version](https://img.shields.io/pypi/v/varitykit)](https://pypi.org/project/varitykit/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)

`varitykit` is the command-line tool for [Varity](https://varity.app). You point it at any project — website, API, AI agent — and one command takes it live. Your monthly cost is locked at deploy time and based on the hardware your app reserves: same bill at 100 users or 100,000.

## Why people switch

- **Predictable bill, forever**: your monthly cost doesn't change with traffic, requests, or build minutes. Usage-based hosting typically grows 5-40× as the app does. Varity is built different — flat-rate hardware reservation, locked at deploy.
- **One command, every app**: static sites, APIs, and AI agents all deploy the same way. Varity auto-detects what you built and configures the runtime.
- **No infrastructure to wire up**: no Dockerfile, no Kubernetes, no DNS, no region selection, no managed-service signup chain (Postgres, Redis, and other sidecars auto-wire into the same deployment).

Run `varitykit app deploy --dry-run` to see your estimated monthly cost before you ship.

## 60-second quickstart

```bash
pip install varitykit                     # 1. install
varitykit login                           # 2. paste your deploy key
cd my-app && varitykit app deploy         # 3. live at https://varity.app/my-app/
```

Starting from scratch? Scaffold with your usual tool (`npx create-next-app`, `npm create vite`, …), then deploy the same way.

## What kinds of apps work

Validated end-to-end on this release:

| Pattern | Status | Notes |
|---|---|---|
| Plain HTML / static sites | ✅ | Works as-is |
| Vite SPA / React / Vue / Astro / Qwik | ✅ | Auto-detected, one command |
| Next.js — static export and SSR / API routes | ✅ | Auto-detected, one command |
| Express / Fastify / NestJS / Koa / Hono | ✅ | Node APIs and servers |
| FastAPI / Django / Flask | ✅ | Python APIs and apps |
| Container images | ✅ | Deploy any prebuilt image |
| Databases & services alongside your app | ✅ | Postgres, Redis, MongoDB, MySQL, Ollama auto-wire into the same deployment |

Go, Rust, Ruby, Elixir, Java, PHP, and .NET source builds are on the roadmap (container images of them deploy today).

## Commands

```
varitykit doctor              check Node 20+, Python 3.11+, git, npm, network
varitykit login [--key ...]   save your deploy key (or use VARITY_DEPLOY_KEY env var)
varitykit app deploy          deploy from the current directory
varitykit app templates       list certified deploy templates
varitykit app list            list your deployments
varitykit app info <id>       details for a specific deployment
varitykit app delete <name>   stop a deployment and end its billing
varitykit migrate --url <gh>  convert a Vercel project to Varity
varitykit completions         install shell tab completion (bash / zsh / fish)
```

`--debug`, `--json`, `--version`, and `--help` are available globally.

### `varitykit app deploy`

```bash
varitykit app deploy                        # auto — figures out everything
varitykit app deploy --hosting static       # force static hosting
varitykit app deploy --hosting dynamic      # force dynamic hosting
varitykit app deploy --dry-run              # show what would deploy without shipping
varitykit app deploy --name staging         # custom URL slug → varity.app/staging/
varitykit app deploy --template agent-zero  # deploy a certified template
```

For dynamic apps (anything with a server), your code currently needs to be in a public GitHub repo so the build can fetch it. Eliminating that requirement is the next thing we're shipping.

### Ready-made templates — AI agents and more

Skip the code entirely: the [Developer Portal](https://developer.store.varity.so) has a gallery of certified templates that deploy in one click. The same gateway-owned catalog is available from the CLI with `varitykit app templates` and from your AI editor via the [Varity MCP](https://www.npmjs.com/package/@varity-labs/mcp).

### `varitykit migrate`

Converts a Vercel-deployed app to Varity: clones the repo, removes Vercel-specific packages and config (`vercel.json`, `@vercel/blob`, `@vercel/kv`, edge-runtime markers, Next image-optimizer settings), suggests portable replacements (S3-compatible storage for `@vercel/blob`, `ioredis` for `@vercel/kv`), applies them, and deploys.

```bash
varitykit migrate --url https://github.com/me/my-vercel-app --dry-run   # preview
varitykit migrate --url https://github.com/me/my-vercel-app             # do it
```

Verified on real-world Vercel projects: the Next.js framework itself, `leerob/leerob.io`, `shadcn-ui/taxonomy`.

## Use Varity from your AI editor

Varity ships an MCP server so Cursor, Claude Code, VS Code Copilot, Windsurf, and other AI tools can deploy without typing.

```bash
claude mcp add varity -- npx @varity-labs/mcp     # Claude Code
# Then: "deploy this app to Varity"
```

See [@varity-labs/mcp](https://www.npmjs.com/package/@varity-labs/mcp) for setup in other clients.

## Honest current state

Static sites, single-container apps, and apps with auto-wired services (a database, a cache, a local LLM) are production-ready and verified end-to-end on this release. Source builds for languages beyond Node and Python aren't supported yet — they return a clear error rather than a broken deploy, and any language already works via a container image.

## Support

- **Docs**: [docs.varity.so](https://docs.varity.so)
- **Discord**: [discord.gg/7vWsdwa2Bg](https://discord.gg/7vWsdwa2Bg)

## License

MIT
