Use

Use a plugin

Declare a project, apply a plugin, pin versions with the lockfile, and detect drift.

You're here because you want to apply someone else's plugin to a project. This is the consumer ramp.

Where to start

Your situationStart here
First time, just want to try itQuickstart (5 min)
What a project is, and which files to commitProjects
Need an apm.ymlht config init
Apply by name, from the manifest, or compile local .apm/Apply
Cloned a repo that already has apm.ymlInstall (ht install)
Resolve dependencies.mcp registry identitiesMCP Registry identities (ht install --mcp / ht mcp)
Preview resolved harnesses, or compile from apm.ymlCompile and targets (ht compile / ht targets)
Git dependencies.apm (owner/repo, URL, path/ref), transitive walk, and lock replayApply git dependencies
Hidden Unicode, lock SHA-256, apm-policy.yml, or a CI gateAudit
Parked hooks / bin/ / self-defined MCP, or ht approveExecutable trust
Adding a catalog plugin to an existing repoCatalog
You need the lockfile, --update, or plugin whyLockfile
You need a CycloneDX / SPDX inventory from apm.lock.yamlExport a lockfile SBOM
ht status --check reports drift after a git pullDrift
You hit auth errors on a private org catalogCloud auth

The consumer flow

The commands you'll use almost every day:

ht init                                      # one-time per machine
ht plugin list --search foundation --remote-only
ht apply engineering-foundation              # add / materialize a plugin
ht status .                                  # inspect lock + snapshot drift

Create a starter manifest when you want apply-from-repo. Default teammate onboarding in a repo that already has apm.yml is ht install (the same loop as ht apply with no selector):

ht config init
ht install                                   # resolve from apm.yml

That's the loop. Search, apply, commit apm.lock.yaml (and apm.yml if you have one) plus harness files, restore with ht install on a fresh clone.

  1. Projectsapm.yml, apm.lock.yaml, environments mapping.
  2. ht config init — write the starter manifest.
  3. Apply — selector, no-selector from apm.yml, or local .apm/ primitives.
  4. Installht install, the same no-selector loop; default teammate onboarding.
  5. MCP Registry identitiesdependencies.mcp registry strings, ht install --mcp, ht mcp search|list|show|install.
  6. Compile and targetsht compile (named apply-from-manifest) and ht targets (resolved harness preview).
  7. Apply git dependencies — git dependencies.apm, transitive walk, lock replay.
  8. Auditht audit, Unicode on apply, lock SHA-256, apm-policy.yml.
  9. Executable trust — opt-in executables: gate, ht approve / ht deny, lock exec_status.
  10. Lockfile — pins, --update, plugin why.
  11. Export a lockfile SBOMht lock export, CycloneDX / SPDX inventory.
  12. Driftstatus --check, snapshots, revert.
  13. Stop here unless you hit catalog search or Cloud auth above.

Author-curious?

If you want to publish a plugin others can apply, switch to the author ramp. The plugins you build there apply with the same ht apply command everyone here is running.

Cloud for teams?

Org catalogs, immutable versions, and ht auth login live on the Cloud ramp. Consumer commands are unchanged when you point at a private org — you'll authenticate first, then search and apply as usual.