Skip to content

Local configuration

base-cli does not read machine-local or project configuration implicitly. Standalone applications can accept an explicit --config file through the generic profile, or provide their own load_user_config and load_config callbacks for application-owned configuration sources.

Command-line --config values are strict: the path is expanded and must be an existing, readable regular file before profile and runtime startup. By contrast, base_cli.config.load_yaml_file(path) keeps its optional-file behavior for profile-discovered configuration; pass required=True when a consumer-owned call site represents an explicit user request.

The consumer owns the configuration schema, merge semantics, and operational choice of whether to back up or synchronize its machine-local files.

Applications that prefer conventional policy can opt into CliProfile.batteries_included("tool"). It loads optional platform-aware user, project, environment, and explicit YAML layers with documented precedence and records the winning source for each key in Context.config_provenance. Its reserved lifecycle keys are validated separately as Context.framework_config; consumer-owned keys remain in Context.config. CliProfile.generic() remains the convention-free default.