Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Demiurge

Demiurge is a declarative configuration tool for Arch Linux. You describe your system state in TypeScript (hostname, packages, services, users, and dotfiles) and dmrg makes the changes.

Features

  • TypeScript configuration: write your config with full type checking and editor support
  • Named configurations: keep multiple configs (e.g. per machine) in a single file and choose which to apply
  • Packages: install and remove packages via paru or cargo
  • Services: enable and disable systemd services
  • Users: manage user group membership
  • Dotfiles: manage dotfiles as symlinks from a source directory to their target locations
  • System: configure system settings like the hostname
  • Dry run: preview changes before applying them
  • Static configs: export your config to JSON or YAML and apply it from a file or stdin

Disclaimer

This project is currently tailored for a specific personal setup and is in an early stage. The API may change drastically.

  • Requires paru on the system for AUR package management
  • Only tested on CachyOS / Arch Linux