Skip to content

Modules and profiles

Keep capabilities small and compose the configuration your environment needs.

EtchConfiguration

A module owns one capability and its input files. A profile selects modules for a purpose, such as a developer environment. Both live in your consumer repository.

A module is local configuration

The starter keeps Git configuration under modules/git/. Its module.conf declares a name, schema version, and actions; files/gitconfig is a module-owned asset. Etch reads literal configuration data rather than executing it as Python.

Repository-wide defaults.conf holds default provider options and explicit plugin paths. Actions can override supported defaults. Profiles live under profiles/.

Select deliberately

./etch plan git
./etch plan --profile developer

Dependencies describe ordering and required selected modules. They do not silently select modules or fetch remote dependencies. Imports copy a module into the fixed modules/<name>/ destination and refuse an existing destination.

See the configuration reference and the import guide for current syntax and limits.