Prisma ORM 8 is here.Read the docs

create-prisma

Scaffold a new Prisma ORM app with create-prisma, with Prisma Composer, Prisma Postgres, and a deploy path built in.

create-prisma creates a new Prisma ORM project from an app template. It installs Prisma ORM, emits the contract, and generates a deployable Prisma Composer app. PostgreSQL projects use Composer's native Prisma Postgres provider, including migrations and a typed runtime client.

Use it when you want to start from a working app. If you already have an app, follow Add Prisma ORM to an existing PostgreSQL database or Add Prisma ORM to an existing MongoDB database instead.

Prerequisites

  • Node.js 22.18 or newer on the 22 line, 24.11 or newer on the 24 line, or 26 or newer. Check with node --version. Node.js 24 is recommended.
  • A package manager. The npm that ships with your Node.js release works; on Node.js 22 that is npm 10. pnpm, Bun, and Yarn 4.10 or newer are also supported.

On any other Node.js version, create-prisma stops before it writes any files and prints the required range. It skips this check when you run it with Bun or Deno.

Create a project

Run the CLI with your package manager and answer the prompts:

bun create prisma@latest my-app

The prompts cover the project name, the app template, the database provider, the contract authoring style, the package manager, whether to install agent skill files for coding assistants, and whether to deploy right away. Skill files go into .claude/, .cursor/, .agents/, and .devin/ by default; answer no, or pass --skills none, to skip them. To remove them later, set skills: { agents: [] } in prisma.config.ts and run prisma skills sync; see Configuration. Generated Node.js projects expect the Node.js versions listed under Prerequisites.

The last prompt is:

Deploy to Prisma now?

The prompt defaults to Yes. --yes accepts the defaults for the other prompts but answers No here, so --yes on its own never deploys; --json deploys unless you pass --no-deploy. Choose no to deploy later with the generated deploy script. When more than one Prisma workspace session is available, the CLI asks which workspace receives the deployment; pass --workspace <id-or-name> to pick one without a prompt, or omit it to use the active workspace. Choosing another workspace also updates the Prisma CLI's active workspace session.

Skip the prompts

Pass flags when you already know the project shape. --yes accepts the defaults for anything you leave out:

bun create prisma@latest my-app --template next --provider postgres --yes

create is the default subcommand, so npm create prisma@latest -- create my-app ... and npm create prisma@latest -- my-app ... are the same command. Everything after -- goes to create-prisma; without the separator npm keeps the flags for itself.

FlagWhat it does
<name> or --name <name>The project name and directory.
--template <name>Chooses the app template (see below).
--provider postgres|postgresql|mongo|mongodbChooses the database: PostgreSQL relational models or MongoDB document models.
--authoring psl|typescriptChooses the contract authoring style.
--package-manager npm|pnpm|yarn|bun|denoChooses the package manager used to install dependencies.
--skills <agents>|noneWhich coding agents get skill files, or none to opt out. Same values and effect as prisma init --skills; the choice is recorded in the skills config section.
--deploy / --no-deployDeploys the generated app to Prisma immediately, or skips that step.
--workspace <id-or-name>The Prisma workspace to deploy into.
--yesSkips prompts and accepts the default choices, which means no deploy.
--forceScaffolds into a non-empty directory, overwriting the generated starter and Prisma files (config, contract, and db.ts). It refuses when the target has a non-empty migrations/ directory.
--verboseShows the full command output during setup. Not compatible with --json.
--jsonRuns non-interactively and writes one JSON result object to stdout, for agents and automation. Deploys unless you pass --no-deploy.

Templates

--templateApp
minimalA minimal server with one query
nextNext.js
honoHono
elysiaElysia
nestNestJS
svelteSvelteKit
astroAstro
nuxtNuxt (needs Node.js 22.22.3 or newer on the 22 line, 24.15 or newer on the 24 line, or 26 or newer)
tanstack-startTanStack Start

Every template supports PostgreSQL and MongoDB, PSL or TypeScript contract authoring, and npm, pnpm, Yarn, and Bun. Each framework guide walks the generated app from the first query to a deploy.

Deno is supported for local minimal PostgreSQL apps:

deno run -A --minimum-dependency-age=0 npm:create-prisma@latest my-deno-app --template minimal --provider postgres --package-manager deno --no-deploy

Deno 2.9 skips packages published in the previous 24 hours by default, so without --minimum-dependency-age=0 a newly published create-prisma release resolves to an older cached version. Prisma Compute does not support Deno deployments yet, so Deno projects stop at a verified local run.

Start the app

Set the connection string in your environment, then initialize the database and start the dev server. The generated prisma.config.ts reads DATABASE_URL for PostgreSQL and MONGODB_URL for MongoDB from the process environment and loads no dotenv file (Deno projects are the exception: their scripts pass --env-file=.env), so export the variable in the shell before running the scripts.

cd my-app
npm run db:init
npm run dev

Sample records are seeded on the app's first query. From there, evolve the contract under src/prisma/, run npm run contract:emit, and plan and apply the migration with npx prisma migration plan and npx prisma db migrate. Create a new app with PostgreSQL covers that loop in detail, and Create a new app with MongoDB covers the MongoDB connection string.

Generated scripts

The scaffold adds these scripts to package.json:

ScriptRuns
contract:emitprisma contract emit
db:initprisma db init
db:updateprisma db update
db:verifyprisma db verify
migration:planprisma migration plan
migrateprisma db migrate
migration:statusprisma migration status
migration:showprisma migration show
skills:syncprisma skills sync || exit 0
postinstallprisma skills sync || exit 0, added by the prisma init the scaffold runs
composer:devprisma dev module.ts
composer:deployprisma deploy module.ts
dev:composerthe build script, then composer:dev
deploythe build script, then composer:deploy

Deno projects get the Prisma scripts only, each wrapped in deno run -A npm:..., without skills:sync, without postinstall, and without the Composer scripts. --skills none also leaves out skills:sync and postinstall.

Telemetry

Published builds may send anonymous usage telemetry. It never includes project names, file paths, or database URLs. Disable it by setting DO_NOT_TRACK, CREATE_PRISMA_DISABLE_TELEMETRY, or CREATE_PRISMA_TELEMETRY_DISABLED in your environment.

The CLI is open source at prisma/create-prisma.

On this page