Core Concepts

Manifest

The aegis.toml file at the root of your config repo is the manifest. It declares modules, profiles, and variables. Aegis searches upward from the current directory to find it.

Modules

A module is a directory containing a module.toml and the config source files it manages. Modules are organized by domain — shell, terminal, ai-tools, dev-tools, dirmacs.

Each module defines:

Profiles

A profile selects which modules to enable and can override variables. Use profiles for different machine types:

[profiles.dev-vps]
modules = ["shell", "terminal", "dev-tools", "ai-tools", "dirmacs"]

[profiles.ci]
modules = ["shell", "dev-tools"]

Linking Strategies

StrategyBehavior
symlinkCreates a symlink from target to source. Edits flow through instantly. Default.
copyCopies the source to target. Use for files that applications modify at runtime.
templateRenders the source through Tera ({{ variable }}), writes as a regular file. One-way.

Variables

Variables provide dynamic values for templates:

[variables]
hostname = { source = "command", value = "hostname" }
user = { source = "env", value = "USER" }
gpu = { source = "static", value = "false" }

Profile-level variables override manifest-level ones.