# Installation

> Install the CLI from npm, or build it from source.

Source: https://nextship.doodlebytestudio.in/docs/installation

## From npm

```bash
npm install -g nextship-cli
```

The package is `nextship-cli`; the command it installs is `nextship`. npm refuses the
name `nextship` because an unrelated package called `next-ship` exists and its similarity
check treats the two as the same name.

## From source

```bash
git clone https://github.com/gowtham472/nextship.git
cd nextship
pnpm install && pnpm build
npm link --workspace packages/cli
```

`npm link` puts `nextship` on your PATH, so every other page reads the same either way.

## Verify the install

```bash
nextship --version
nextship detect
```

`detect` runs no build and writes nothing, so it is safe to run anywhere. If it reports
your project's Next.js version, package manager and env files, the install is good.

## What actually gets installed

One package with a single runtime dependency. The Next.js adapter ships inside the package
rather than as a peer dependency, so there is no version to keep in step and nothing
second to install.

The published package carries a provenance attestation signed during the release build and
linked to the exact commit it came from. For a tool that asks you for a cloud token, being
able to prove the published bytes came from the public source is worth more than asserting
it.

## Upgrading

```bash
npm install -g nextship-cli@latest
```

Nothing in your project is version-pinned to the CLI. The one file nextship writes,
`nextship.json`, records which app belongs to this project and is forward compatible: a
newer CLI reads a file written by an older one.
