Installation
LPM is a single Rust binary. The npm package downloads the right platform binary on install — that's the most common path, but you can also use Homebrew, the curl installer, or cargo install directly.
Install the CLI
npm (most common)
npm install -g @lpm-registry/cli
# yarn / pnpm / bun also work
yarn global add @lpm-registry/cli
pnpm add -g @lpm-registry/cli
bun add -g @lpm-registry/cli
The npm package's postinstall downloads the right binary for your platform from GitHub Releases. Once installed, the lpm command is available globally.
Homebrew (macOS / Linux)
brew tap lpm-dev/lpm
brew install lpm
The Homebrew formula is auto-updated on each release.
curl installer
curl -fsSL https://lpm.dev/install.sh | sh
Detects your platform and installs the latest release. Useful for Docker images, CI runners, and any environment without Node.js.
cargo
cargo install --git https://github.com/lpm-dev/rust-client lpm-cli
Builds from source. Useful if you want a custom build profile or need to track a specific commit.
Try without installing
npx @lpm-registry/cli@latest <command>
Handy for one-off commands or checking the latest version before committing to a global install.
Pre-built platforms
| Platform | Pre-built |
|---|---|
macOS (Apple Silicon / darwin-arm64) | ✓ |
macOS (Intel / darwin-x64) | ✓ |
Linux (x86_64 / linux-x64) | ✓ |
Linux (ARM64 / linux-arm64) | ✓ |
Windows (x86_64 / win32-x64) | ✓ |
Other platforms can build from source via cargo install (above).
Configure Your Project
Step 1 — Sign in
lpm login
Authenticates with lpm.dev (OAuth via your browser) and stores the token securely in the OS keychain. If no keychain is available, LPM falls back to an AES-256-GCM encrypted file.
Step 2 — Configure .npmrc
lpm setup-npmrc
Generates a 30-day read-only token and writes it to the project's .npmrc, so both lpm install and npm install work with @lpm.dev/* packages. Adds .npmrc to .gitignore automatically.
Run lpm setup-npmrc again any time to refresh the token.
Step 3 — Install packages
lpm install @lpm.dev/owner.package-name
The same project also works with plain npm install (because of the .npmrc from Step 2) — useful when you want to keep a mixed-tooling workflow.
Verify
lpm doctor
Checks:
- LPM binary version and update status
- OS keychain availability for token + vault storage
- Auth state and registry connectivity
- Node.js version detection (for projects that use it)
- Sandbox availability for lifecycle scripts (Phase 46 script policy)
If anything is misconfigured, lpm doctor prints exactly what to fix.
Manual .npmrc configuration
If you prefer to configure manually instead of using lpm setup-npmrc, add this to your .npmrc:
@lpm.dev:registry=https://lpm.dev/api/registry
//lpm.dev/api/registry/:_authToken=${LPM_TOKEN}
Place it in your project root (per-project config) or in ~/.npmrc (global config). The ${LPM_TOKEN} placeholder is expanded from the environment at install time — works for npm, yarn, pnpm, and lpm alike.
Next steps
- Authentication — tokens, keychain, dashboard pairing, CI/CD
- Publishing — publish your first package
- Environments & Secrets — local + cloud secret vault
- CLI Commands — registry-focused command reference
- cli.lpm.dev — full Rust client documentation