ht config init
Create a starter apm.yml from local profile plugins.
ht config init writes repo-root apm.yml from local profile plugins. It does not write apm.lock.yaml and does not apply anything.
ht config init
ht config init --profile work --profile personal --default work
ht config init --force--profile is repeatable. Omit it to include every local profile plugin (interactive picker on a TTY). --default must be one of the selected names; otherwise the active profile wins, then the first selected name.
If no profile plugins exist yet, init seeds a global default profile first.
What it writes
Each selected profile becomes a source: local entry. default_profile is set. name comes from the directory basename; version is "1.0.0". Init does not add an environments block unless you edit the file afterward.
name: my-repo
version: "1.0.0"
default_profile: work
profiles:
- name: work
source: local
selector: workExisting apm.yml is left alone unless you pass --force.
Inspect and validate
ht config show
ht config show --format json
ht config validate --project .
ht config validate --format json # exit 1 when invalidMissing file:
No project config found. Run `ht config init` to create `apm.yml`.Then ht install (the same loop as ht apply with no selector) can resolve from this manifest, or switch profiles with ht use. Opening a project in Desktop instead seeds a project default profile from on-disk resources. It does not add global default to the project.