Concourse is an automation system written in Go. It is most commonly used for CI/CD, and is built to scale to any kind of automation pipeline, from simple to complex.

Concourse is very opinionated about a few things: idempotency, immutability, declarative config, stateless workers, and reproducible builds.
Concourse is distributed as a single concourse binary, available on the Releases page.
If you want to just kick the tires, jump ahead to the Quick Start.
In addition to the concourse binary, there are a few other supported formats.
Consult their GitHub repos for more information:
$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up -d
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1 ... done
Concourse will be running at http://localhost:8080.
You can log in with the username/password as test/test.
Next, install fly by downloading it from the web UI at
http://localhost:8080/download-fly and
target your local Concourse as the test user:
$ fly -t ci login -c http://localhost:8080 -u test -p test
logging in to team 'main'
target saved
You can follow our Getting Started Tutorial to learn how to write Concourse pipelines.
Concourse has no GUI for configuration. Instead, pipelines are defined in declarative YAML files:
resources:
- name: examples
type: git
source:
uri: https://github.com/concourse/examples
jobs:
- name: hello-world
plan:
- get: examples
trigger: true
- task: hello
file: examples/tasks/hello-world.yml
Most operations are done via the accompanying fly CLI. If you've got Concourse
installed, try saving the above example
as hello-world.yml, target your Concourse
instance, and then run:
fly -t ci set-pipeline -p hello-world -c hello-world.yml
These pipeline files are self-contained, making them easily portable between Concourse instances.
Our user base is basically everyone that develops software (and wants it to work).
It's a lot of work, and we need your help! If you're interested, check out our contributing docs.
$ claude mcp add concourse \
-- python -m otcore.mcp_server <graph>