cdist is a free software configuration management tool for Unix-like systems. It manages nodes over SSH using the Bourne Shell, and does not require any additional software to be installed on target nodes. Cdist differentiates itself from competing configuration management systems by choosing the Bourne Shell as the primary language for writing configuration scripts and requiring effectively no dependencies on target nodes. Although cdist's core is written in Python, an interpreter is only required on the host machine, not target nodes. Cdist was forked in August 2022 as skonfig. Development cdist development started in 2010 at ETH Zurich and is actively being developed and is maintained primarily by Nico Schottelius and Steven Armstrong. cdist is being used at various companies in Switzerland (such as ETH Zurich and The OMA Browser project), the US, Germany and France. Features cdist is a zero dependency configuration management system: It requires only ssh and a bourne-compatible shell on target hosts, which are provided by default on most Unix-like machines. Because of this, cdist can be used to bootstrap other configuration management systems. Installation and configuration cdist is not typically installed as a package (like .deb or .rpm), but rather via git. All commands are run from the created checkout. The entry point for any configuration is the shell script conf/manifest/init, which is called initial manifest in cdist terms. The main components of cdist are so called types, which bundle functionality. The types essentially consists of a number of shell scripts to define which types a type reuses and which code is generated to be executed on the target host. Architecture cdist is split into two components: The core The configuration scripts Core Cdist's core handles reading configuration and communicating with remote hosts. Like Ansible, cdist uses a "push" model to apply configuration changes: A cdist process on the "host" machine connects to any number of remote nodes via SSH and then performs configuration updates on those nodes. Cdist can configure multiple hosts in parallel to reduce the time spent configuring. Configuration The configuration scripts define how the targets shall be configured. They are typically written in Bourne Shell and consists of The initial manifest, an entry point where all configuration runs begin. This script typically uses information about the target node, such as its hostname and operating system, to call other, more specific scripts which perform the actual configuration. Global Explorers, small scripts which