ACE - Support Config

Shared configuration cascade primitives for ACE libraries and tools. ACE Logo

Gem Version Ruby License: MIT

Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.

Usage Guide ace-support-config provides layered configuration loading and merging for ACE, resolving values from .ace project files, user home defaults, and gem-bundled defaults with deterministic precedence. Used by ace-llm, ace-search, ace-review, and most other ACE packages.

ace-config CLI

This package now owns the ace-config executable for managing .ace configuration files and templates.

ace-config init [GEM] [--force] [--dry-run] [--global] [--verbose]
ace-config diff [GEM] [--global] [--local] [--file PATH] [--one-line]
ace-config list [--verbose]
ace-config version
ace-config help

Testing

ace-support-config uses the ACE deterministic test taxonomy:

ace-test ace-support-config        # fast (default)
ace-test ace-support-config feat   # deterministic feature coverage
ace-test ace-support-config all    # fast + feat

This package does not define a package-owned e2e layer in this migration.

How It Works

  1. A resolver builds a configuration cascade from the nearest .ace directory up to user-home and gem-default layers.
  2. Resolved values are merged using configurable merge strategies with deterministic precedence.
  3. Consumers access resolved config by namespace, file path, or direct lookup.

Use Cases

Load layered configuration safely - combine project, user, and default values with deterministic precedence for any ACE package.

Support project-specific overrides - place .ace files near the execution context to customize behavior while keeping defaults stable across tools like ace-llm and ace-review.

Resolve namespaces consistently - access configuration across tools using shared resolver methods, so ace-llm-providers-cli and ace-search get the same cascade behavior.


Usage Guide | Part of ACE