Env vars
Manage environment variables for the linked project across three scopes: `development`, `preview`, `production`. Push your `.env.local` in one command, or mutate single keys with `add` / `rm`.
Scopes
| Scope | Used for |
|---|---|
development | Local cimplify dev --remote. |
preview | Default for cimplify deploy (no --prod). Used for PR previews. |
production | Used by cimplify deploy --prod. |
List
# List vars in the preview scope (default)
cimplify env ls
# Pick a scope
cimplify env ls --scope=production
# Reveal non-secret values
cimplify env ls --showSecret values are redacted by default; --show reveals only public ones (those with NEXT_PUBLIC_-style names or marked --public on add).
Pull (download)
# Write public env vars to .env.local
cimplify env pull
# From a different scope, to a different file
cimplify env pull --scope=production --out=.env.production.localOnly public vars are written. Secrets stay on the server. Use pull to bootstrap a new dev machine without copying values manually.
Push (upload)
# Push .env.local to the preview scope
cimplify env push
# To a specific scope
cimplify env push --scope=production
# From a different file
cimplify env push --file=.env.production.local --scope=production
# Replace the entire scope (deletes server-only vars)
cimplify env push --scope=preview --overwriteWithout --overwrite, push upserts each var; keys missing from the file stay on the server. With --overwrite, the scope is replaced exactly.
Add & rm
# Add a public var
cimplify env add NEXT_PUBLIC_SITE_URL=https://shop.example.com --public
# Add a secret
cimplify env add STRIPE_SECRET_KEY=sk_live_... --secret --scope=production
# Remove (with confirmation)
cimplify env rm STRIPE_SECRET_KEY --scope=production
# Skip the prompt
cimplify env rm STRIPE_SECRET_KEY --scope=production --yesAll flags
| Flag | Applies to | Description |
|---|---|---|
--scope <name> | all | One of development | preview | production. |
--show | ls | Reveal non-secret values. |
--out <path> | pull | Output path. Default .env.local. |
--file <path> | push | Input path. Default .env.local. |
--overwrite | push | Replace the entire scope. Without it, push upserts. |
--secret | add | Mark is_secret = true. |
--public | add | Mark is_secret = false. |
--yes | rm | Skip confirmation. |
Workflow
# 1. Edit .env.local with the values you need
# NEXT_PUBLIC_CIMPLIFY_API_URL=https://api.cimplify.io
# NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY=pk_test_...
# NEXT_PUBLIC_CIMPLIFY_BUSINESS_ID=biz_...
# NEXT_PUBLIC_SITE_URL=https://preview-shop.example.com
# 2. Push to preview
cimplify env push --scope=preview
# 3. Verify
cimplify env ls --scope=preview --show
# 4. Mirror to production with prod-specific overrides
cimplify env push --scope=production
cimplify env add NEXT_PUBLIC_SITE_URL=https://shop.example.com --public --scope=production.env.local is gitignored by every Cimplify template. Don't commit secrets; push them to scopes instead.
Where next
-
deploy Push and ship after env push.
-
domains Wire a custom domain.
-
Environments Test mode vs live mode.
Deploys & projects
Create a project, link your CWD to it, and ship. Every deploy is a git SHA + a build; rollbacks are just re-deploys of an older SHA.
Domains
Domains live at the **business** scope: add and verify them once, then attach them to one or more projects per env (`preview` or `production`). One verified domain can serve any project in your business.