Projects
Organization-level containers for Apps and attached resources, managed with ccp project.
A Project is the organization-level container above your deployable Apps. Every App belongs to exactly one Project — when the hierarchy shipped, the platform backfilled one Project per existing App, so nothing you had deployed moved or changed names. Databases, stores, and compute services can be attached to a Project or left standalone.
Most of the time you never manage Projects by hand: a fresh ccp deploy reuses or creates a same-named Project for you (see How deploy uses Projects). The ccp project commands exist for the rest — listing what an organization has, preparing an empty Project, or removing one and everything it owns.
Commands
ccp project ls
ccp project ls [--org-id <org>]Alias: ccp project list.
Lists the organization's Projects, one per line: name and id.
ccp project create
ccp project create <name> [--org-id <org>]Creates an empty Project. Names are normalized to lowercase kebab-case — My App becomes my-app.
ccp project rm
ccp project rm <name> [--org-id <org>] [-y|--yes]Alias: ccp project remove.
Deletes the Project named exactly <name> — and all of its Apps and Deployments. Attached databases, stores, and compute services are detached, not deleted. The command asks for confirmation; non-interactively it refuses to run without --yes.
Org resolution
All three commands resolve the organization the same way as other org-scoped commands: --org-id → the local project config → CCP_ORG_ID → single-org auto-pick → the interactive picker (an error in headless mode).
How deploy uses Projects
A fresh ccp deploy — no local link yet — first looks for an App with the exact same name in the resolved organization and attaches to it. Only when the name is free does it reuse or create a same-named Project and create the App inside it. The resulting project_id is persisted alongside app_id and organization_id in the gitignored .ccp/config.json. See Deploying → First Deploy.
Attaching optional resources
Databases, stores, and compute services don't have to live in a Project — attachment is optional. A resource carries a nullable project_id: set it to attach, clear it to detach, and pass project_id as a query filter on the list endpoints to see only one Project's resources. Attach and detach run through the API today; there is no CLI flag for it yet. Deleting a Project detaches these resources rather than destroying them.