Metadata-Version: 2.4
Name: varitykit
Version: 2.0.5
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: License :: OSI Approved :: MIT License
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
License-File: LICENSE
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"
Dynamic: license-file

# 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 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/
```

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 curated templates (AI agents like Agent Zero and Hermes, and more being added) that deploy in one click, each with its flat monthly cost shown up front. The same templates are available 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
