Deploy from the CLI
Upload a local project and create a preview or production deployment with easel deploy.
Upload source from your linked project (or monorepo) to Easel and create a deployment. Git is optional — the CLI hashes and uploads source files, then the platform builds remotely.
By default the CLI skips .env and .env.* (including nested paths) so secrets are not uploaded. To include a specific file, add a negation in .easelignore (for example !.env.example).
Note: Deploy requires a CLI token with write permissions. If you logged in before deploy shipped, run
easel logout && easel loginonce.
Prerequisites
- Install and authenticate: see Authentication.
- Link a project:
easel link, or link a monorepo witheasel link --repo(or pass--project).
Deploy
Preview (default):
Production:
Wait until the deployment is ready (or fails):
Monorepos
After easel link --repo, you can run easel deploy from any app subdirectory. The CLI resolves the project from your cwd and uploads the whole repository root so the project's Root Directory (and workspace packages outside that directory) still apply on the remote build.
For --prebuilt, the CLI uploads .vercel/output from the matched app directory instead.
Options
| Option | Description |
|---|---|
--prod | Deploy to production (default is preview) |
--project | Project slug or ID (defaults to linked project) |
--wait | Wait until a terminal status (READY, ERROR, …) |
--timeout | Timeout for --wait (default 10m) |
--archive=tgz | Pack the tree as a tarball before upload (fewer round-trips) |
--prebuilt | Upload .vercel/output and skip the remote framework build |
-y, --yes | Skip the production confirmation prompt (required for --prod in CI) |
-F, --format json | Machine-readable output |
Prebuilt deploys
Build locally, then ship artifacts:
CI
Use a token from easel login, or create one in the dashboard with deploy permissions.