# contract print (/docs/cli/contract-print) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Write the configured contract as a Prisma ORM 8 PSL contract. Location: CLI > contract print `contract print` loads the contract that `contract` names in `prisma.config.ts` and writes it as a Prisma ORM 8 PSL contract. The source can be a Prisma ORM 7 schema, a TypeScript contract, or a PSL contract. Use it to move from a Prisma ORM 7 `schema.prisma`, read through [`prisma7Schema`](https://www.prisma.io/docs/cli/configuration#use-a-prisma-orm-7-schema), to a contract file written for Prisma ORM 8. The command is offline. It does not need a database connection. ## Usage [#usage] #### bun ```bash bunx prisma contract print [--output ] ``` #### pnpm ```bash pnpm prisma contract print [--output ] ``` #### yarn ```bash yarn prisma contract print [--output ] ``` #### npm ```bash npx prisma contract print [--output ] ``` ## Options [#options] | Option | What it does | | ----------------- | --------------------------------------------------------------------------------------- | | `--output ` | Writes the PSL to this file. Without it, the command prints the PSL and writes no file. | | `--format human` | Prints the PSL to standard output, so you can redirect it to a file. | | `--config ` | Read this config file instead of `./prisma.config.ts`. | | `--json` | Prints a machine-readable result, with the PSL in `psl.text`. | ## Examples [#examples] #### bun ```bash bunx prisma contract print bunx prisma contract print --output ./src/prisma/contract.prisma bunx prisma contract print --json ``` #### pnpm ```bash pnpm prisma contract print pnpm prisma contract print --output ./src/prisma/contract.prisma pnpm prisma contract print --json ``` #### yarn ```bash yarn prisma contract print yarn prisma contract print --output ./src/prisma/contract.prisma yarn prisma contract print --json ``` #### npm ```bash npx prisma contract print npx prisma contract print --output ./src/prisma/contract.prisma npx prisma contract print --json ``` ## What it writes [#what-it-writes] The file starts with `// use prisma-8`. When you point `contract` at the file and run `contract emit`, you get the same contract as before, with the same hashes, so the database needs no migration and no new `db sign`. When a part of the contract has no PSL form, the command names that part, fails, and writes nothing. It also refuses an `--output` path that is one of the files it reads, `prisma.config.ts`, or a file `contract emit` writes. A warning in the contract source, such as `PSL_DEPRECATED_SCALAR_NAME`, does not stop the command. It is reported as a diagnostic whose `severity` is `warn`. In `--json` output, the warning is an entry of the result's `diagnostics`, with `code` set to `CONTRACT.SOURCE_DIAGNOSTIC` and the warning's own code in `meta.code`. ## Next steps [#next-steps] * Set `contract` in `prisma.config.ts` to the file you wrote, as [Configuration](https://www.prisma.io/docs/cli/configuration) shows. * Run [`contract emit`](https://www.prisma.io/docs/cli/contract-emit) to write `contract.json` and `contract.d.ts` from it. ## Related pages - [`auth`](https://www.prisma.io/docs/cli/auth): Sign in to your Prisma account from the CLI, sign out, and manage workspace sessions. - [`branch`](https://www.prisma.io/docs/cli/branch): List platform branches for a project. - [`bucket`](https://www.prisma.io/docs/cli/bucket): Create and manage object-store buckets. - [`Configuration`](https://www.prisma.io/docs/cli/configuration): Configure Prisma ORM CLI commands with prisma.config.ts and global flags. - [`contract emit`](https://www.prisma.io/docs/cli/contract-emit): Emit Prisma ORM contract artifacts.