Skip to content

Configuration

goga reads configuration from two files: the project config .goga/config.yml in the project root (created by goga init) and the optional machine-wide home config ~/.goga/config.yml.

File Scope Required
Project Configuration — .goga/config.yml One project: language, image, build and pipeline executors, codemanifest, tools, usages, lint, topics Required for goga build / goga pipeline
Home Configuration — ~/.goga/config.yml Whole machine: base env layer, extra docker run / docker build arguments Optional — absent by default

Pages in this section

Page Content
Project Configuration .goga/config.yml — global fields, the codemanifest section, and the map of domain-owned sections
Home Configuration ~/.goga/config.yml — the machine-wide layer
Agents How agent: <name> values in both configs resolve into wrapper scripts inside the Docker container
Hooks The config/amend_config hard action — how installed tools amend the configuration in memory at the load moment
goga config Read configuration values back from the command line

The home config is the lower-priority layer: home.env is the base layer of the container env-file ladder (git identity, CLI -e, and the engine variables win over it), docker.run fragments are appended to every container invocation, and docker.build fragments to every image build, regardless of the project. See Home Configuration for the layering details.

Every domain-owned section of the project config (build, pipeline, tools, usages, lint, topics) is documented in full in its domain's Configuration page — see Project Configuration — Domain sections. The values a command actually consumes may additionally be amended in memory at the load moment by installed tool packages — see Hooks.