Converge is a configuration management tool that makes it easy to manage servers, laptops and other devices.

Key features:

  • Easy to install and run. A single binary and configuration file is all you need.
  • A powerful graph engine that automatically generates dependencies and runs tasks in parallel.
  • API-first communication using grpc.
  • Module verification: only run trusted modules.

Slack Status Code Climate


See the installation documentation.


See the docs! It’s pretty reasonable, though. Here’s a summary:

Converge uses HCL for syntax. HCL is a superset of JSON that looks (and acts) quite a bit nicer.

The basic unit of composition in converge is the module. Modules have parameters and contain resources. Creating a module looks something like this:

# write "hello world" to disk
param "message" {
  default = "Hello, World in {{param `filename`}}"

param "filename" {
  default = "test.txt"

file.content "render" {
  destination = "{{param `filename`}}"
  content     = "{{param `message`}}"

Invoke this with converge apply --local samples/fileContent.hcl to install Traefik from yum on your system. You can also converge plan --local samples/fileContent.hcl to see what changes will be made before you apply them.



For linting, you’ll need:

tool go get
go tool vet (built in)


You’ll need:

  • Google’s protobuf compiler, 3.0 or above.
  • The go protoc plugin: go get -a
  • The grpc gateway plugin(s): go get -u

Continuous Integration and Testing

We use Wercker for CI with a custom base image. The Dockerfile for that image can be found at /ci/Dockerfile in the root of the project, and is pushed as asteris/converge-ci. You can test Converge in the container with the following invocation:

docker run -i \
           -t \
           --rm \
           --volume $(pwd):/go/src/ \
           asteris/converge-ci \
           /bin/bash -c 'cd /go/src/; make test'

Benchmarks are run with make bench, and fuzzing is run with make fuzzing/{target}.


Converge is licensed under the Apache 2.0 license. See LICENSE for full details.