Glossary
LPM CLI, LPM.dev Registry, and LPM Firewall terminology in one place.
A reference for terms that mean something specific in LPM CLI, the LPM.dev Registry, or LPM Firewall. Sorted alphabetically.
Add (vs. install)
lpm add is source delivery — copies a package's source files into your project, like shadcn-ui. lpm install is runtime dependency — resolves and links into node_modules/. Not aliases. See lpm add and lpm install.
Auto-build
The signal that triggers the rebuild step for trusted packages immediately after install completes. Sources: lpm install --auto-build (works on both project and -g installs), lpm install --yolo / --policy=allow (auto-triggers under the allow policy), or — project only — package.json > lpm > scripts.autoBuild = true. If a trusted lifecycle script fails, install exits non-zero. Globals don't read per-project script knobs from package.json, so triage with mixed-trust trees on -g requires the explicit --auto-build flag.
Behavioral tag
A static-analysis flag attached to an installed package by lpm audit and queryable via lpm query. Examples: :eval, :network, :fs, :shell, :child-process, :obfuscated. Used to make security gates more precise than blanket version pinning.
Capability
A widening request a package's lifecycle scripts can declare in lpm.scripts.{passEnv, readProject, sandboxLimits}. Beyond the user's defaults, it requires explicit approval through lpm approve-scripts — the system never silently grants elevated capabilities.
Cold install
An install where neither node_modules nor the global store has the dep tree yet — everything is downloaded from the registry. Reported in benchmarks as the slowest steady-state path.
Config-aware package
A package whose tarball ships an lpm.config.json at the root. lpm add treats it as a configurable installer (interactive prompts, conditional file copy, conditional dep injection). Without lpm.config.json it's a plain source copy.
Distribution mode
A per-package opt-in for how the package is sold or shared on lpm.dev: private (default), pool, or marketplace. Orthogonal to package type (normal / source / Swift). All lpm.dev packages start private.
Greedy-fusion (resolver)
The default resolver. Streams metadata fetches into the dispatcher. Faster than the legacy PubGrub-with-split-retry resolver; opt out with LPM_RESOLVER=pubgrub.
Hoisted layout
LPM CLI's v2 hoisted virtual-store layout. Root direct deps are surfaced at project node_modules/<dep>, while package-local dependency links live inside shared store link entries. Starting default for single-package projects. Workspaces auto-default to isolated, and default installs with incompatible peer requirements auto-switch to isolated; override per-invocation with lpm install --linker=hoisted, per-user with ~/.lpm/config.toml > linker, or per-project with package.json > lpm > linker.
Integrity
The SRI hash (sha512-…) recorded in the lockfile against each resolved package. Verified on every install. Drift is a hard error.
Isolated layout
pnpm-style strict node_modules — each package gets exactly the deps it declared, no phantom-dependency access. Project node_modules/<pkg> is a symlink into the global content-addressable store. Default for workspaces (when LPM CLI detects a package.json > workspaces glob or a pnpm-workspace.yaml) and for default installs where resolution detects incompatible peer requirements; otherwise single-package projects start hoisted.
Lockfile
lpm.lock (TOML, git-diffable, authoritative) plus lpm.lockb (binary companion) when the graph fits the binary wire format. Commit lpm.lock always; commit lpm.lockb when LPM CLI writes it. See Lockfile format and Lockb format.
lpm.dev
The LPM.dev Registry monetization layer. Hosts private, pool, and marketplace packages under the @lpm.dev/ scope. LPM CLI is registry-agnostic — lpm.dev is one of several registries it can talk to. See Registries.
Marketplace package
A distribution mode where installs require a license purchase. Per-package opt-in.
MCP
Model Context Protocol. The LPM.dev Registry ships an MCP server that AI editors can wire up via lpm mcp setup.
Minimum release age
Cooldown before a new package version is installable. The cooldown is off by default. When enabled, it checks direct project dependencies unless you select strict scope.
Strict mode also checks transitive dependencies and lockfile replays. Use --allow-new to bypass the cooldown for one install.
Release-age exclusions accept a package name, an exact version, or @scope/*. Configure them for one run, one project, or one user.
Use --min-release-age, minimumReleaseAge, or minimum-release-age-secs to configure the cooldown duration.
Use --min-release-age-exclude for one run. Use lpm trust release-age-exclude for a project. Use lpm config release-age-exclude for a user.
npm-alias dep
A dep declared like "my-react": "npm:react@^19.0.0". Local name (my-react) diverges from the canonical target (react). Tracked in lockfiles via alias-dependencies and root-aliases. Disables the binary lockfile (TOML-only).
Plugin
A versioned, lazy-downloaded tool that backs one of LPM CLI's built-in commands — Oxlint powers lpm lint, Biome powers lpm fmt, and Rolldown powers lpm bundle. First use downloads and verifies the tool into LPM CLI's global cache; the same machine reuses the verified copy across projects. Pin versions per-project in lpm.json > tools; manage installed plugins with lpm plugin (list, outdated, update, remove). Tools that aren't plugin-backed, such as tsc via lpm check or tsdown via lpm pack, stay project-owned.
Pool package
A distribution mode where the package's metadata is public but installs are gated to pool subscribers. Publisher earns a share of the pool's revenue. Per-package opt-in.
Provenance
Sigstore-signed attestation that proves which CI workflow built a tarball and which commit it came from. Generated at publish time with lpm publish --provenance. Verified at install / audit time.
Provenance drift
A change in a package's publisher identity between a prior approval and a candidate version. LPM CLI blocks installs on drift on both project and -g paths; opt out per-package via lpm install --ignore-provenance-drift <pkg> or fully via --ignore-provenance-drift-all. The reference snapshot is captured into the trust binding's provenanceAtApproval field at lpm approve-scripts time (or --global time for the global trust file).
Quality score
Per-package score (0–100) computed from readme / license / types / tests / maintenance signals. Run lpm quality to view; gate publishing with lpm publish --min-score N.
Rebuild
The dependency lifecycle-script step of the install pipeline. The executed dependency phases are preinstall, install, postinstall (in that order); dependency prepare and prepublishOnly are recognized for detection but never executed. Default-deny: dependency scripts don't run during lpm install (or lpm install -g) and require approval via lpm approve-scripts (project) / lpm approve-scripts --global (global) or a non-default script policy. Bare project installs have a separate root lifecycle runner for pnpm:devPreinstall, preinstall, install, postinstall, preprepare, prepare, and postprepare. The standalone lpm rebuild command targets the project; a lpm rebuild --global companion is a planned follow-up — until then, reinstalling the affected global is the post-approval rerun path.
Sandbox
The OS-level containment LPM CLI runs lifecycle scripts inside: Seatbelt on macOS, landlock on Linux, AppContainer on Windows. Three modes: default (filesystem containment + env scrubbing; outbound network allowed), strict (also denies outbound network), none (no containment; full host access including credential env). Set per-invocation with lpm install --strict-sandbox / --paranoid (alias) / --no-sandbox; persistently with [sandbox] mode in ~/.lpm/config.toml (or LPM_STRICT_SANDBOX=1 for strict). Setup wizard: lpm config sandbox. Packages can request capability widening (extra write roots, env vars) via the lpm.scripts block in package.json, but widening requires explicit approval through lpm approve-scripts.
Save policy
The rule that decides what range gets saved to package.json when lpm install <pkg> finishes. Defaults to ^resolvedVersion. See Save policy.
Script policy
deny (default) / allow / triage. Governs whether and how dependency lifecycle scripts run on both lpm install and lpm install -g; it does not gate the root project's bare-install lifecycle. Set per-invocation with --policy / --yolo / --triage, per-project with package.json > lpm > scriptPolicy (project installs only), per-user with ~/.lpm/config.toml > script-policy (applies to both project and -g). On -g the project-config tier is N/A; the chain collapses to CLI flag > ~/.lpm/config.toml > default. Setup wizard: lpm config scripts.
Skill (agent skill)
A Markdown file that teaches an AI agent how to use a package or workflow. Package authors publish LPM.dev package skills that extract into .lpm/skills/<package>/ during lpm install and lpm add (skip with --no-skills). The LPM CLI also manages standalone standard SKILL.md sources from GitHub or local directories through lpm skills. Package-published skills follow LPM.dev publishing validation; standalone sources are commit-pinned and security-scanned before installation. See AI agent skills for the full model.
Triage advisor
none (default) / claude-cli / codex / ollama. Optional LLM advisor for the triage gate — only active when script policy is triage. Set per-project with package.json > lpm > triageAdvisor, per-user with ~/.lpm/config.toml > triage-advisor. Independent of script policy. Approvals are ephemeral — never written to disk — so a second install invokes the advisor again. Setup wizard: lpm config triage.
Source package
A package whose tarball ships an lpm.config.json at the root — lpm add treats it as a configurable installer. Status is content-based (the file's presence), not naming or registry.
Store
The global content-addressable package store at ~/.lpm/store/. The default v2 layout keeps one canonical object per source hash and shares graph-keyed link entries across projects. Experimental v3, selected only with LPM_STORE_VERSION=v3, adds content-and-mode-addressed file blobs and tree manifests. Project node_modules/<pkg> is a symlink into the matching link entry; package files are materialized with independent writable inodes through copy-on-write clones/reflinks or independent copies, so writes cannot alter canonical object/blob bytes. Maintained by lpm store; see Content-addressable store for the full mechanism.
Trusted dependency
A package on a trust allowlist that's permitted to run lifecycle scripts under scriptPolicy: "deny". Project trust lives in package.json > lpm > trustedDependencies (legacy array of names, or rich map bound to integrity + script hash). Global trust lives in ~/.lpm/global/trusted-dependencies.json (rich map only, with an extra provenanceAtApproval snapshot used by the install-time drift gate). The two stores are independent — lpm approve-scripts writes the former, lpm approve-scripts --global writes the latter.
Tunnel claim
Pro/Org-only — registering a stable tunnel domain so subsequent lpm dev --tunnel and lpm tunnel runs serve from the same URL. Free users get an ephemeral random domain on every run.
Up-to-date install
An lpm install invocation that detects nothing has changed (mtime fast path) and exits in a few ms without doing any work. Reported in benchmarks as ~14 ms.
Warm install
An install where the global store and lockfile are present but node_modules is missing. The install rebuilds node_modules/ from already-extracted store entries — no downloads, no resolution. Reported in benchmarks as ~387 ms.
Workspace
A monorepo declared via package.json > workspaces (npm/yarn array form, or yarn-style object form). LPM CLI walks the globs, builds a topological graph, and exposes member-targeting via --filter and -w. See Workspaces.