Magiccfg 1.3 Apr 2026
~/.config/magiccfg/ ├── config.yaml ├── templates/ │ └── gitconfig.tmpl └── secrets/ └── github-token.age
Release date: April 16, 2026 Codename: “Declarative drift” magiccfg 1.3
$ magiccfg apply --fix Checking 14 resources... [WARN] ~/.zshrc: expected mode 644, found 600 → fixed [WARN] ~/.config/nvim/init.lua: missing → restored from catalog [OK] All resources match intended state. Integrate encrypted secrets directly into your config catalog using age (modern, simple encryption). Magiccfg 1.3 transparently decrypts files matching *.age when run with the private key available via $MAGICCFG_AGE_KEY or an age agent. Magiccfg 1
Example config.yaml :
If you used magiccfg verify in scripts, replace it with magiccfg apply --dry-run . Inline shell commands in resources are now deprecated – see Migration Guide for the new plugin-based approach. Example: Using magiccfg 1.3 to manage a developer workstation Catalog structure: Example: Using magiccfg 1
resources: - path: ~/.ssh/id_ed25519 source: secrets/id_ed25519.age decrypt: age mode: "0600" Write custom resource types in any language that speaks JSON over stdin/stdout. Hook into check , apply , and diff phases. Plugins are discovered via ~/.config/magiccfg/plugins/ .