Configuration
repoverlay uses a configuration file called repoverlay.ccl to control how overlays are applied. This file is optional — without it, all files in the overlay directory are symlinked with the same relative paths.
The repoverlay.ccl file
Section titled “The repoverlay.ccl file”Place a repoverlay.ccl in the root of your overlay directory:
overlay = name = my-config
/= Rename files when applyingmappings = .envrc.template = .envrc vscode-settings.json = .vscode/settings.json
/= Symlink entire directories as a unitdirectories = = .claude = scratchOverlay name
Section titled “Overlay name”The overlay.name field sets the name used to identify this overlay in status and remove commands. If omitted, the directory name is used.
Mappings
Section titled “Mappings”The mappings section lets you rename files during apply. Each entry maps a source filename to a destination path:
mappings = .envrc.template = .envrcThis is useful when the overlay source uses different filenames than the target repo expects.
Directories
Section titled “Directories”The directories section lists directories that should be symlinked (or copied) as a unit rather than walking individual files:
directories = = .claude = .vscodeThis is important for directories like .claude/ where the entire directory tree should be managed atomically.
Configuration format
Section titled “Configuration format”repoverlay uses CCL (Categorical Configuration Language) for its configuration files. CCL uses = for key-value pairs and indentation for nesting. Lines starting with /= are comments.