Skip to docs content

Getting Started

SCPM installs as a native command-line tool for Node projects. You do not need a Rust toolchain or Cargo to use the public installer.

Install SCPM

On a supported Unix target, run the shell installer:

curl -fsSL https://scpm.dev/install.sh | sh

The installer requires Node.js, downloads a prebuilt SCPM binary for your platform, verifies the archive checksum, and writes scpm, scpmr, and scpmx to ~/.local/bin by default.

Use a different install directory when needed:

curl -fsSL https://scpm.dev/install.sh | SCPM_INSTALL_DIR="$HOME/bin" sh

Check the installed binary:

scpm --version

Run It In A Project

Move into an existing Node project and run the command you already intended to run:

scpmr test

scpmr is shorthand for scpm run. It checks whether node_modules is fresh for the current package.json and lockfile. When dependencies are missing or stale, SCPM installs first. When the tree is already current, it runs the script immediately.

For a plain install:

scpm install

For CI:

scpm ci

Daily Commands

scpm add react
scpm add -D vitest
scpm remove react
scpm update
scpmr build
scpm test
scpm exec vitest
scpmx cowsay hi

scpmx is shorthand for scpm dlx. It prefers an installed local binary and otherwise uses a throwaway environment for one-off tools.

Lockfiles

SCPM can read and write these lockfile formats in place:

  • scpm-lock.yaml
  • pnpm-lock.yaml
  • package-lock.json
  • npm-shrinkwrap.json
  • yarn.lock
  • bun.lock

If a project already has one supported lockfile, SCPM keeps using that format. For a new project with no lockfile, SCPM creates scpm-lock.yaml.