Проект CFENGINE анонсирован в 1993 году, его разработкой занимается в основном один человек - профессор Норвежского университета (Осло) Марк Бюргес (Mark Burgess). В основе построения Cfengine лежит "Теория обязательств" (Promise Theory), адаптированная Марком Бюргесом применительно к области автоматизации и управления.
Основная идея Promise Theory состоит в добровольном взаимодействии автономных агентов между собой. При этом особое внимание уделяется стабильному состоянию системы, а не перестройкам. Система дает обещание, что она правильно настроена и проверяет это состояние. Изменения вносятся только в случае, если обещания, то есть указания на перестройку, не выполнены.

В итоге при внесении каких-либо изменений вся сеть через некоторое время приходит к единому состоянию. Предоставляя достаточно большие возможности, Cfengine тем не менее так и не стал популярен среди системных администраторов, несмотря на то что за время существования проекта код был загружен более миллиона раз. О низкой популярности косвенно свидетельствуют относительно небольшое количество публикаций в специализированных журналах и отсутствие сообществ.
Исходный код доступен и распространяется под лицензией GNU GPL, но все изменения и пожелания весьма жестко контролировались Марком Бюргесом. Вероятно поэтому, Cfengine ранее называли проектом одного человека. Сегодня ситуация несколько изменилась, в том числе создана и коммерческая версия продукта. Правила можно представить как язык программирования очень высокого уровня, на изучение которого в любом случае придется потратить некоторое время.
Большие возможности сделали систему относительно сложной в изучении, язык при этом выглядел достаточно запутанным. Это главные причины малой популярности веток 1 и 2. В апреле 2009 года была представлена 3-я (Сommunity edition) версия Cfengine, лицензируемая под GPL v3. Беглого взгляда на документацию достаточно, чтобы понять, что перед нами существенно переработанный продукт, который даже позиционируется несколько по-иному, как фреймворк.
Здесь уже используется новый язык описания с более четким и простым синтаксисом, поддержкой классов и шаблонов функций. Добавлены новые функции отчетов, поддержка управления знаниями и виртуализации, более тесной интеграции с другими программными продуктами. Однажды созданная конфигурация легко читаема, и соответственно в нее просто внести изменения.