Webpresso CLI
The webpresso command-line interface is the supported customer command surface for turning an idea into a Webpresso workspace you can launch, operate, and improve. Use it to create the starter, validate the checked-in contract, run local development, deploy the supported starter, and operate the schema/database workflow.
CLI Usage
The CLI owns the supported customer flow. This page stays on the launch path first, then drills into the commands that make that path real:
webpresso --helpGetting Started
The supported happy path is intentionally narrow: one starter, one workspace shape, and one launch story you can take from idea to first live version without detouring through platform-internals.
webpresso workspace new my-appScaffold the supported starter.
wp blueprint new "Launch customer portal" --complexity MCreate the canonical draft blueprint scaffold before refining and executing it via the agent-kit lifecycle (`wp blueprint`).
webpresso workspace validateValidate the supported workspace lanes under apps/, packages/, and webpresso/.
webpresso workspace devRun the supported local development workflow for the current workspace.
webpresso workspace deployPublish the workspace through the supported Webpresso deployment flow.
webpresso schema checkRun the schema validation suite; add --runtime to validate against a live ephemeral GraphQL runtime and schema snapshot.
webpresso db migrateApply database changes through the supported Webpresso database workflow.
webpresso config codegenGenerate TypeScript config artifacts from checked-in YAML sources.
Schema Scaffolds
Add new checked-in intent files without dropping into older generator plumbing.
webpresso workspace add entity customer_ordersCreate a starter entity definition in webpresso/entities.
webpresso workspace add workflow onboarding_flowCreate a starter workflow definition in webpresso/workflows.
webpresso workspace add page customer_portalCreate a starter custom page definition in webpresso/ui/pages.
webpresso workspace add endpoint customer_webhookCreate a starter endpoint definition in webpresso/endpoints.
webpresso workspace add job nightly_rollupCreate a starter job definition in webpresso/jobs.
Schema and Database Operations
The grouped operational surface now lives under webpresso schema, webpresso db, and webpresso config. The short wp alias is interchangeable, so wp schema check, wp db push, and wp config codegen behave identically to their webpresso ... counterparts.
webpresso schema compileCompile checked-in YAML metadata into generated runtime, frontend, and type artifacts.
webpresso schema codegenRun the schema codegen pipeline after compile/apply steps.
webpresso schema applyApply metadata, validation, and codegen to the GraphQL runtime.
webpresso schema check --runtimeExport a live ephemeral schema snapshot, validate operations against it, then run runtime metadata validation against an ephemeral GraphQL runtime and database branch.
webpresso db migrateRun database migrations against the active environment.
webpresso db seedSeed development or E2E data using the supported profiles.
webpresso db seedPrepare an E2E database branch with migrations and seed data.
Export & Portability
Every Webpresso project is standard code you own. Use webpresso workspace export to produce a self-contained project bundle that can be opened in any editor and run with standard tooling — no Webpresso CLI required. The exported bundle includes your customer-owned contract roots (apps/, packages/, webpresso/), all generated artifacts, and an ownership manifest describing exactly what Webpresso managed. Use webpresso workspace eject for the same output with a stronger declaration of intent to operate fully independently.
webpresso workspace export --out ./my-app-exportedExport the workspace to a self-contained bundle you can run without the Webpresso CLI.
webpresso workspace eject --out ./my-app-standaloneEject the workspace with explicit intent to operate fully independently of Webpresso.
Project Contract
Checked-in customer intent lives in webpresso/. Runnable apps live in apps/. Shared implementation packages live in packages/. Local machine state and generated artifacts live in .webpresso/.
Generated CRUD is a partial supported path: define entity UI in webpresso/entities/, let Webpresso generate the default list/detail/form surfaces, and switch to manual ownership or custom pages when you need bespoke behavior.
your-project/
├── apps/ # Dev/deploy lane
│ ├── api/ # API worker app
│ └── web/ # Web app
├── packages/ # Shared implementation lane
│ └── ui/ # Starter shared UI package
├── webpresso/ # Checked-in customer-owned project contract
│ ├── config.yaml # Supported project config
│ ├── entities/ # Data model definitions
│ ├── workflows/ # Workflow definitions
│ ├── blueprints/ # Planning and implementation blueprints
│ ├── tech-debt/ # Tracked follow-up work and debt notes
│ ├── ui/pages/ # Custom non-CRUD pages
│ ├── actions/ # Optional supported action metadata
│ ├── events/ # Optional supported event definitions
│ ├── permissions/ # Optional supported authorization policy
│ ├── seeds/ # Optional supported seed configuration
│ ├── types/ # Optional supported source type definitions
│ ├── ui/navigation/ # Optional supported customer navigation
│ ├── endpoints/ # HTTP handlers
│ └── jobs/ # Background jobs
└── .webpresso/
└── generated/
├── runtime/ # Generated runtime artifacts
├── types/ # Generated types
├── frontend/ # Generated frontend artifacts
└── .webpresso/generated/.manifest.json # Tool-owned generated-artifacts manifestLocal State Rules
- →Commit webpresso/config.yaml
- →Keep deployable apps under apps/ and shared implementation packages under packages/
- →Create planning blueprints with wp blueprint new "<goal>" --complexity <size> and keep the generated files in webpresso/blueprints/; track follow-up debt in webpresso/tech-debt/
- →Optional supported roots like webpresso/actions/, webpresso/events/, webpresso/permissions/, webpresso/seeds/, webpresso/types/, and webpresso/ui/navigation/ are valid customer inputs when your project needs them
- →Keep .webpresso/generated/ out of git
- →Treat generated CRUD as a default path, then use generated/manual ownership in entity YAML or custom pages for exceptions
webpresso/config.yaml
Keep project identity and runtime choices in the checked-in config:
project:
name: my-app
slug: my-app
version: 1.0.0
functions:
runtime: nodejs20
timeout: 30