LPM-cli

lpm skills

Install, list, validate, or clean AI agent skills delivered as packages.

lpm skills <action> [package]

Skills are markdown files that ship inside a package and tell an AI agent how to use it correctly. lpm install and lpm add install them automatically; this command is for explicit management.

For the conceptual model — what skills are, on-disk layout, editor integration, and the lpm.dev-only status — see AI agent skills.

Examples

lpm skills list                                # what's installed, grouped by package
lpm skills install @lpm.dev/owner.pkg          # fetch and write one package's skills
lpm skills validate                            # local sanity-check against the size + shape rules
lpm skills clean                               # wipe .lpm/skills/ entirely

Subcommands

SubcommandAliasesEffect
listlsWalk .lpm/skills/<package>/*.md, group by package, print one row per skill with file size
install <package>Fetch the published skills for one package from the registry and write them to .lpm/skills/<package>/. Same end state as the auto-install side-effect of lpm install / lpm add, scoped to one package
validateWalk local .lpm/skills/, validate each file against the publish-time shape rules (see below). Exits non-zero on any failure
cleanRecursively remove .lpm/skills/ and everything under it. Blunt — not orphan-aware; re-run lpm install afterward to repopulate

install requires an authenticated session against lpm.dev (only lpm.dev packages ship skills today). list, validate, and clean are purely local — no network.

Validation rules

lpm skills validate enforces what the publisher had to satisfy at publish time:

RuleLimit
Per-skill file size≤ 15 KB
Per-skill content length≥ 100 chars (after frontmatter)
Per-skill structureMust start with YAML frontmatter (---)
Total skills size≤ 100 KB across all installed skill files

Each violation is printed as a warning; the command exits non-zero if any violation occurred. --json emits a structured envelope:

{
  "success": false,
  "valid": 2,
  "errors": [
    "owner.pkg/heavy.md: exceeds 15KB limit (16384 bytes)",
    "owner.pkg/short.md: content too short (need 100+ chars)"
  ],
  "quality_impact": 7
}

quality_impact mirrors the publish-time quality bonus: +10 if 3 or more skills validate, +7 for at least one, 0 otherwise.

--no-skills and .gitignore

lpm install and lpm add auto-install skills as a post-resolve side-effect. Skip with --no-skills per-invocation. When skills do install through those commands, .lpm/skills/ is added to your project's .gitignore automatically. The standalone lpm skills install does not touch .gitignore — add the entry by hand if you want the skill files ignored.

Keep .lpm/skills/ out of source control unless you have a specific reason to commit it (e.g., reproducible AI tooling in CI). The contents come back deterministically from the registry on the next install.

Flags

lpm skills takes no specific flags besides the global flags. --json returns structured output for every subcommand.

See also