Skip to main content

Quickstart

This guide walks you through the most common Better PM workflows. After completing it, you’ll understand how to install dependencies, add packages, and navigate your monorepo efficiently.
Make sure you’ve completed the installation and set up shell integration before continuing.

Your First Commands

Let’s start with the basics in any project with a lockfile.

Install Dependencies

Better PM automatically detects your package manager and runs the appropriate install command.
This is equivalent to:
  • pnpm install if you have pnpm-lock.yaml
  • bun install if you have bun.lockb
  • npm install if you have package-lock.json
Both pm i and pm install work — use whichever you prefer.

Add a Dependency

Add a package to your project:
Add a dev dependency with the -D flag:
Paste-friendly: You can paste install commands directly:
Better PM extracts prettier and the -D flag automatically, then uses your project’s actual package manager.

Remove a Dependency

Remove a package:

Monorepo Workflows

Better PM shines in monorepo environments. Let’s explore the key features.

List Workspace Packages

View all packages in your monorepo as a tree:
Example output:
The command is pm pls (package list) to distinguish it from pm ls, which is a proxy for your package manager’s ls command (e.g., pnpm ls for listing installed dependencies).
Jump to any workspace package:
Return to the monorepo root:
Tab completion works for package names! Type pm cd @my and press Tab to see suggestions.

Scoped Installs

When you’re inside a workspace package, pm i automatically installs only that package:
Behind the scenes, Better PM runs:
  • pnpm install --filter "@myapp/web..." (pnpm)
  • bun install --filter "@myapp/web" (bun)
  • npm install --workspace @myapp/web (npm)
To install a specific package from anywhere:
Install multiple packages:

Root Install Safety

At the monorepo root, pm i shows a warning before installing everything:
Output:
To skip the prompt (useful in CI):

Additional Commands

Better PM includes several proxy commands that pass through to your package manager.

Run Scripts

Run a package.json script:
Automatic passthrough: Unknown commands automatically run as scripts:
This was added in version 0.3.3.

Execute Packages

Run a package with npx/pnpx/bunx:

Update Dependencies

Update packages interactively:

Check Dependency Usage

See why a package is installed (pnpm/bun only):

Other Proxy Commands

These commands work exactly like their package manager equivalents:
  • pm ls — List installed dependencies (not workspace packages)
  • pm link — Link a package
  • pm unlink — Unlink a package

Example Workflow

Here’s a complete workflow for working on a feature in a monorepo:
1

Navigate to your workspace

2

Add a new dependency

3

Install updated dependencies

This installs only @myapp/web and its dependencies.
4

Run the dev server

Automatically runs the dev script from package.json.
5

Add a dev tool

6

Go back to the root

Common Patterns

Install All Packages in CI

Add the Same Dependency to Multiple Packages

Or from the root with filters:

Clean Install a Specific Package

Next Steps

You now know the core Better PM commands! Here are some resources to explore:

Commands Reference

Detailed documentation for every command

Monorepo Guide

Advanced monorepo workflows and best practices

Shell Integration

Set up shell completions and navigation

GitHub

View source code and contribute

Getting Help

View help for any command:
For more assistance, open an issue on GitHub.