mgmt: next generation config management!

February 23, 2026 ยท View on GitHub

mgmt!

Go Report Card Build Status GoDoc Matrix Support

About:

Mgmt is a real-time automation tool. It is familiar to existing configuration management software, but is drastically more powerful as it can allow you to build real-time, closed-loop feedback systems, in a very safe way, and with a surprisingly small amount of our mcl code. For example, the following code will ensure that your file server is set to read-only when it's friday.

import "datetime"
$is_friday = datetime.weekday(datetime.now()) == "friday"
file "/srv/files/" {
	state => $const.res.file.state.exists,
	mode => if $is_friday { # this updates the mode, the instant it changes!
		"0550"
	} else {
		"0770"
	},
}

It can run continuously, intermittently, or on-demand, and in the first case, it will guarantee that your system is always in the desired state for that instant! In this mode it can run as a decentralized cluster of agents across your network, each exchanging information with the others in real-time, to respond to your changing needs. For example, if you want to ensure that some resource runs on a maximum of two hosts in your cluster, you can specify that quite easily:

import "sys"
import "world"

# we'll set a few scheduling options, and request each node be scheduled:
schedule "mygroup42" {
	strategy => "rr",
	max => 2,
	ttl => 10,
}

# read the (changing) scheduled result stream:
$set = world.schedule("mygroup42")

if sys.hostname() in $set {
	# use your imagination to put something more interesting right here...
	print "i got scheduled" {} # this will run on the chosen machines
}

As you add and remove hosts from the cluster, the real-time schedule function will dynamically elect up to two hosts from the available pool. These specific functions aren't intrinsic to the core design, and new ones can be easily added.

Please read on if you'd like to learn more...

Community:

Come join us in the mgmt community!

MediumLink
Websitehttps://mgmtconfig.com/
Matrix#mgmtconfig on Matrix.org
Mastodon#mgmtconfig
Mailing listlooking for a new home, suggestions welcome
Supportm9rx.com for enterprise products and services

Status:

Mgmt is a next generation automation tool. It has similarities to other tools in the configuration management space, but has a fast, modern, distributed systems approach. The project contains an engine and a language. Please have a look at a video or blog post.

Mgmt is over ten years old! It is very powerful today, and has a solid foundation and architecture which has been polished over the years. It's used in production with a growing number of both corporate and individual users. Interested parties should start with the official website.

Sponsors:

Mgmt is generously sponsored by:

m9rx corporation

Please reach out if you'd like to sponsor!

Documentation:

Please read, enjoy and help improve our documentation!

DocumentationAdditional Notes
quick start guidefor everyone
introductory guidefor everyone
resource referencefor everyone
function referencefor everyone
frequently asked questionsfor everyone
general documentationfor everyone
language guidefor everyone
function guidefor mgmt developers
resource guidefor mgmt developers
style guidefor mgmt developers
contributing guidefor mgmt contributors
service API guidefor external developers
godoc API referencefor mgmt developers
prometheus guidefor everyone
puppet guidefor puppet sysadmins
developmentfor mgmt developers
videosfor everyone
blogsfor everyone

Questions:

Please ask in the community! If you have a well phrased question that might benefit others, consider asking it by sending a patch to the FAQ section. I'll merge your question, and a patch with the answer!

Get involved:

Feel free to grab one of the issues if you're a first time contributor to the project or if you're unsure about what to hack on! Please get involved by working on one of these items or by suggesting something else!

Bugs:

Please set the DEBUG constant in main.go to true, and post the logs when you report the issue. Please include the full mcl code you used as well as the exact command you used to run it. Feel free to read my article on debugging golang programs.

Contributing:

We'd love to have your patches! Please send them our way!

On the web:

Blog posts and recorded talks about mgmt are listed here!

Happy hacking!