CLI
How hm resolves configuration — files, layering, and environment overrides.
hm builds its configuration by layering four sources, lowest precedence
first:
- Built-in defaults.
- User config —
~/.config/hm/config.toml. - Project config —
<repo>/.hm/config.toml. - Environment variables, prefixed
HM_with__between nested keys.
Each layer overrides the one before it: a project file beats your user file,
and an environment variable beats both. Every field is optional — omit a
layer and the defaults stand. hm writes the user file with its directory
restricted to 0700.
Fields
| Key | Type | Default | Meaning |
|---|---|---|---|
cloud.api_url | string | https://api.harmont.dev | Harmont API base URL. |
cloud.org | string | (none) | Active organization slug. |
preferences.format | "human" | "json" | "human" | Default output format. |
preferences.auto_watch | bool | false | Watch a build automatically after creating it. |
Example
[cloud]
api_url = "https://api.harmont.dev"
org = "acme"
[preferences]
format = "human"
auto_watch = trueEnvironment overrides
Any field can be set with an HM_-prefixed variable, using __ to separate
nested keys:
export HM_CLOUD__API_URL="https://api.harmont.dev"
export HM_CLOUD__ORG="acme"
export HM_PREFERENCES__FORMAT="json"