Config Mate

Config Mate turns a modular JSON, YAML, or XML configuration into a self-contained document. It starts from one root document, follows its JSON References ($ref), and serializes the collected result as JSON, YAML, or XML.

This lets a team maintain small, reusable configuration components without giving up compatibility with tools that only accept one file.

Choose what you need

The documentation is organized around the four Diátaxis modes:

If you want to… Go to…
Bundle a small configuration for the first time Bundle your first configuration
Split an existing configuration into reusable components Build a modular configuration
Try $ref resolution interactively Use the playground
Look up a command, option, environment variable, or exit behavior CLI reference
Look up supported reference locations and syntax $ref reference
Understand why modular configuration matters Why modular configuration?
Understand how the code is organized How the implementation is organized

What Config Mate does

Given a root document like this:

service:
  name: orders
  runtime:
    $ref: components/runtimes.yaml#/python

Config Mate fetches components/runtimes.yaml, selects the python value, recursively resolves any references inside it, and replaces the $ref object with the selected value. The output is a plain, portable document.

References can target:

  • another value in the same document;
  • a local file;
  • an HTTP or HTTPS resource;
  • an S3 object; or
  • an OCI registry resource.

See the CLI reference for the transport details and authentication options.

Where to start

New users should follow Bundle your first configuration. If you already have a large configuration, read Why modular configuration? before deciding where to draw component boundaries.