hum separates machine-wide project discovery from repository-owned service configuration.
Global project registry
The default registry is $XDG_CONFIG_HOME/hum/config.yaml or
~/.config/hum/config.yaml:
version: 1
projects:
storefront:
config: ~/code/storefront/hum.yaml
Use --registry <path> to select another registry. Use --config <path> to
bypass the registry and load a project configuration directly.
Project configuration
A version 2 hum.yaml declares:
repositories: named checkout roots;services: commands, working directories, ports, URLs, requirements, and dependencies;templates: named service selections;logs: rotation, retention, line limits, and display-time redaction.
Relative repository paths resolve from the file that declares them. A service
cwd resolves from its repository, and env_file resolves from that working
directory.
Local overrides and environment
Machine-specific values can live in an untracked hum.local.yaml beside the
project file. Service environment precedence is:
- values loaded from
.env; service.envvalues;- the inherited process environment;
- repeatable CLI overrides such as
--env API_URL=http://localhost:3000.
Unknown fields and invalid names, ports, URLs, durations, commands, or references are rejected. Validate a selected configuration with:
hum storefront all-services config validate