Skip to main content

Overview

CommandDescriptionCost
naive apps listList all appsFree
naive apps createCreate a new app (provisions a Vercel project + optional Supabase project)Free
naive apps templatesList starter templates (GitHub repo + clone commands)Free
naive apps show <id>View app detailsFree
naive apps delete <id>Delete app and all infrastructureFree
naive apps deploy <id> [--dir <path>]Deploy — uploads your local project, or deploys the agent workspace inside containersFree
naive apps publish <id>Promote deployment to productionFree
naive apps deployments <id>List deployment historyFree
naive apps retry <id>Retry failed provisioningFree
naive apps secrets list <id>List environment variable keysFree
naive apps secrets set <id> <KEY> <VALUE>Set environment variable (synced to Vercel)Free
naive apps secrets delete <id> <KEY>Delete environment variable (removed from Vercel)Free
naive apps secrets reveal <id> <KEY>Reveal variable valueFree
naive apps domains list <id>List app domainsFree
naive apps domains add <id> <domain>Add custom domainFree
naive apps domains remove <id> <domainId>Remove domainFree
naive apps domains set-primary <id> <domainId>Set primary production domainFree
naive apps domains connect <id> <domainId>Connect company domainFree
naive apps domains disconnect <id> <domainId>Disconnect domainFree
naive apps domains verify-dns <id> <domainId>Verify DNS configurationFree
naive apps db tables <id>List database tables (fullstack)Free
naive apps db query <id> "<sql>"Run SQL query (fullstack)Free
naive apps vercel <id> <method> <path>Call any Vercel REST API operation (scoped)Free
naive apps supabase <id> <method> <path>Call any Supabase Management API operation (scoped)Free

How It Works

Each app wraps real provider infrastructure, managed via the Naive API. When you create an app:
  1. A Vercel project is provisioned in the Naive org (Next.js framework)
  2. For fullstack apps, a Supabase project is also provisioned (PostgreSQL, auth, storage, edge functions)
  3. A production domain is assigned (e.g., naive-myapp-abc123.vercel.app)
  4. The response includes a template block — the GitHub clone command for the starter template. If the company has an agent container, a dedicated engineer agent is also provisioned with the template scaffolded into its workspace.
Apps are fully standalone — you can create, build, and deploy without any orchestration. naive apps deploy uploads your local project directory when run on your own machine; inside agent containers it deploys the agent’s workspace. Because Naive wraps Vercel and Supabase directly, the curated commands above cover the common path, and the vercel / supabase proxy commands cover everything else those platforms support.

Typical Workflow (Direct)

# 1. Create the app — returns the template clone command
naive apps create --name "My Landing Page" --type frontend_only

# 2. Clone the starter template and build locally
git clone https://github.com/usenaive/app-dev-templates naive-app
cd naive-app/frontend_only/dark-premium
# ... customize ...

# 3. Deploy from the project directory (uploads your code)
naive apps deploy <app-id>
# → Returns preview URL + deployment ID

# 4. Promote to production
naive apps publish <app-id> --deployment <deployment-id>
# → Live at naive-my-landing-page-xxx.vercel.app

# 5. Connect custom domain
naive apps domains connect <app-id> <domain-id>
naive apps domains verify-dns <app-id> <domain-id>
In orchestrated mode (CEO/engineer agents), the same commands run inside the agent container and deploy from the agent workspace automatically.

Create App

naive apps create --name "My App" --type fullstack
naive apps create --name "Landing Page" --type frontend_only --description "Marketing site" --variant clean-minimal

Options

FlagRequiredDescription
--name <name>YesApp display name
--type <type>Yesfrontend_only or fullstack
--variant <variant>NoStarter template variant: dark-premium, clean-minimal, bold-energetic, warm-human
--description <desc>NoShort description

Deploy

# Direct mode — run inside your project directory (or pass --dir)
naive apps deploy <app-id>
naive apps deploy <app-id> --dir ./my-project

# Orchestrated mode — inside agent containers
naive apps deploy <app-id> --workspace-path agents/<agent-id>
Outside a container, the CLI packs your project directory (excluding node_modules, .next, .git) into a tarball and uploads it through the Naive API to Vercel — max 30 MB gzipped. Inside an agent container, the agent’s workspace is deployed instead (auto-detected from the current directory). Returns the deployment ID and preview URL.

Options

FlagRequiredDescription
--dir <path>NoLocal project directory to upload (default: current directory when outside a container)
--workspace-path <path>NoContainer workspace path override (orchestrated mode)

Templates

naive apps templates
Lists every starter template with its GitHub path and a ready-to-run clone command. Templates live at github.com/usenaive/app-dev-templates.

Publish

naive apps publish <app-id> --deployment <deployment-id>
Waits for the Vercel build to be ready, then aliases the deployment to the production domain.

Options

FlagRequiredDescription
--deployment <id>YesDeployment ID to promote

Secrets

Secrets are stored encrypted by Naive and synced to the Vercel project’s environment variables. Redeploy after changes for them to take effect.
# Set a variable (creates or updates)
naive apps secrets set <app-id> API_KEY sk_live_xxx --target production

# List keys
naive apps secrets list <app-id>

# Reveal value
naive apps secrets reveal <app-id> API_KEY --target production

# Delete (also removed from Vercel)
naive apps secrets delete <app-id> API_KEY --target preview

Options (set/delete/reveal)

FlagRequiredDescription
--target <target>Yespreview or production
NEXT_PUBLIC_APP_URL (all apps) and NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY (fullstack) are provisioned automatically.

Domains

# Add custom domain (attached to the Vercel project; point DNS at Vercel)
naive apps domains add <app-id> myapp.com

# Connect a company domain (from naive domains)
naive apps domains connect <app-id> <domain-id>

# Verify DNS
naive apps domains verify-dns <app-id> <domain-id>

# Choose which domain production publishes to
naive apps domains set-primary <app-id> <app-domain-id>

# Remove
naive apps domains remove <app-id> <domain-id>

Database (Fullstack Only)

# List tables with row counts
naive apps db tables <app-id>

# Run a query (SELECT, DML, and DDL all supported)
naive apps db query <app-id> "SELECT * FROM users ORDER BY created_at DESC LIMIT 10"
Only available for apps created with --type fullstack. Queries run against the app’s Supabase PostgreSQL database with admin privileges via the Supabase Management API.

Direct Provider Access (Advanced)

Anything the Vercel REST API or Supabase Management API supports can be called through the scoped proxies — Naive injects the credentials and restricts each call to the app’s own project:
# Vercel: deployments, build logs, project settings, env vars, domains, ...
naive apps vercel <app-id> GET v6/deployments
naive apps vercel <app-id> GET "v3/deployments/<deployment-id>/events"
naive apps vercel <app-id> PATCH "v9/projects/<project-id>" --body '{"buildCommand":"next build"}'

# Supabase: auth config, storage, edge functions, migrations, secrets, ...
naive apps supabase <app-id> GET "v1/projects/<ref>/config/auth"
naive apps supabase <app-id> PATCH "v1/projects/<ref>/config/auth" --body '{"site_url":"https://myapp.com"}'
naive apps supabase <app-id> POST "v1/projects/<ref>/database/query" --body '{"query":"select 1"}'

Options

FlagRequiredDescription
--body <json>NoJSON request body
The project ID / ref are shown by naive apps show <id>. Deleting the underlying project through the proxies is blocked — use naive apps delete. See the Vercel proxy and Supabase proxy references for full scoping rules.

Retry Provisioning

naive apps retry <app-id>
Re-creates the Vercel project and/or Supabase project if provisioning previously failed (e.g., network timeout, rate limit). Already-linked infrastructure is untouched.

Delete App

naive apps delete <app-id>
Permanently deletes the app, its Vercel project, its Supabase project (if fullstack), all secrets, domains, and archives the dedicated engineer agent.