Skip to content
Sysdef is currently experimental and unstable. Don't use it on mission critical systems or without a backup

Sysdef

___ _ _ ___ ___ ___ ___
/ __|| | | |/ __|| \ | __|| __|
\__ \| |_| |\__ \| |) || _| | _|
|___/ \__, ||___/|___/ |___||_|
|___/
⟳ keep systems in sync

Sysdef is a hackable system configuration tool built in Typescript with Bun. It allows you to define files, directories, and packages for your system to be installed and managed declaratively. If you’ve ever wanted the benefits of something like NixOS without being trapped in its ecosystem, sysdef is for you.

Terminal window
curl -sL https://raw.githubusercontent.com/FireSquid6/sysdef/refs/heads/main/scripts/clone-and-initialize.sh | bash

Hackable

A sysdef installation includes its own source code. Want to add your own feature or minor tweak? Just open the source code and make your change.

Programmatically Configured

Sysdef is configured in typescript. This means you don’t have to learn some esoteric DSL and aren’t restricted to just a schema like YAML.

Platform Agnostic

Sysdef can run using any package manager with its system of providers. You could even use the same configuration across multiple distros or operating systems.

Open Source

Sysdef is FOSS. If you have modifications that you would like to share with everyone, go ahead and make a PR!