Digger is a free, open source cloud infrastructure management project written in Go and released under MIT. It has 5,045 GitHub stars, 611 forks and 482 open issues, and was last pushed 3 days ago. On this registry it ranks #27 of 43 tracked projects in Cloud Infrastructure Management, with 5 head-to-head comparisons available. It gained 1 stars over the last 6 tracked days.

What is Digger?

What it is

Digger is an open-source infrastructure-as-code orchestration tool written in Go and released under the MIT license. It runs Terraform natively inside an existing CI pipeline rather than on a separate hosted service, and it lives in the Terraform and OpenTofu ecosystem alongside the category of tools the project calls TACOS, or Terraform Automation and Collaboration Software. The project has been rebranded to OpenTaco as of 7 November 2025, while the company behind it remains Digger and the engine is unchanged.

The concrete problem it solves is the duplication and secret exposure that come with running a second CI system only for Terraform. Specialized systems such as Terraform Cloud, Spacelift, and Atlantis each require their own compute, orchestration, and logs, and they typically need cloud access secrets shared with a third party. Digger instead reuses the asynchronous job infrastructure of the CI the team already operates, so Terraform plan and apply run on that existing compute and sensitive credentials stay inside the CI environment.

Key capabilities

  • Terraform plan and apply triggered from pull request comments.
  • Private runners by design, because jobs use the existing CI compute environment rather than separate runners.
  • Open Policy Agent support for role-based access control.
  • PR-level locks on top of Terraform native state locks, to avoid race conditions across multiple pull requests.
  • Terragrunt, workspaces, multiple Terraform versions, Checkov static analysis, and plan persistence.
  • Drift detection.
  • Apply-after-merge workflows and a cloud-based web UI.

Who uses it and how

  • Teams run production Terraform setups powered by Digger CI/CD, as documented by Converge Bio.
  • Data operations teams use it for their Terraform workflows, as described by Brevo.
  • Users run Terraform in a different GCP project for each environment.
  • Users automate merging of pull requests after a successful Terraform apply.
  • The project publishes GitHub Actions getting-started paths for both AWS and GCP.

Getting started

The README points to two getting-started guides, one for GitHub Actions with AWS and one for GitHub Actions with GCP. Digger has two main components: a CLI that runs inside the CI and calls Terraform with the right arguments, and a minimal orchestrator backend, which can also be self-hosted, that triggers CI jobs in response to events such as pull request comments.

When to use it — and when not to

Compared with Atlantis, Digger removes the need to host and maintain a server, though self-hosting via Helm remains possible, and it adds OPA-based RBAC, drift detection, apply-after-merge, and a cloud web UI. Compared with Terraform Cloud and other TACOs, it is open source,

project readme (upstream, from github) — read inline

Image

Community Slack | Schedule a call | Demo Video | Docs


Heads-up: We’ve rebranded! Starting from 7th November 2025, the Digger project is now OpenTaco.
The company’s still Digger, same battle-tested engine — just a more apt name and a bigger vision.

TL;DR

  • Before: Best-in-class Terraform PR automation (a solid improvement upon Atlantis)
  • After: The only piece of software you need to run Terraform or OpenTofu in production.

    We'll gradually update all our marketing material to reflect the same!

CI/CD for Terraform is tricky. To make life easier, specialized CI systems aka TACOS exist - Terraform Cloud, Spacelift, Atlantis, etc.

But why have 2 CI systems? Why not reuse the async jobs infrastructure (compute, orchestration, logs, etc.) of your existing CI?

Digger runs Terraform natively in your CI. This is:

  • Secure, because cloud access secrets aren't shared with a third-party
  • Cost-effective, because you are not paying for additional compute just to run your Terraform

Features

  • Terraform plan and apply in pull request comments
  • Private runners - thanks to the fact that there are no separate runners! Your existing CI's compute environment is used
  • Open Policy Agent (OPA) support for RBAC
  • PR-level locks (on top of Terraform native state locks, similar to Atlantis) to avoid race conditions across multiple PRs
  • Terragrunt, Workspaces, multiple Terraform versions, static analysis via Checkov, plan persistence, ...
  • Drift detection

Getting Started

How it works

Digger has 2 main components:

  • CLI that runs inside your CI and calls Terraform with the right arguments
  • Orchestrator - a minimal backend (that can also be self-hosted) that triggers CI jobs in response to events such as PR comments

Digger also stores PR-level locks and plan cache in your cloud account (DynamoDB + S3 on AWS, equivalents in other cloud providers)

Compared to Atlantis

  • No need to host and maintain a server (although you can)
  • Secure by design: jobs run in your CI, so sensitive data stays there
  • Scalable compute: jobs can run in parallel
  • RBAC and policies via OPA
  • Drift detection
  • Apply-after-merge workflows
  • Web UI (cloud-based)
  • Read more about differences with Atlantis in our blog post

Compared to Terraform Cloud and other TACOs

  • Open source; the orchestrator can be self-hosted
  • Unlimited runs and unlimited resources-under-management on all tiers
  • Jobs run in your CI, not on a third-party server
  • Supports PR automation (apply before merge)
  • No duplication of the CI/CD stack
  • Secrets not shared with a third-party

How Digger is Used

Contributing

We love contributions. Check out our contributing guide to get started.

Please pick an existing issue if you’re interested in contributing; otherwise, feel free to create an issue and triage it with the maintainers before creating a PR.

Not sure where to get started? You can:

  • Join our Slack, and ask us any questions there.

Telemetry

Digger collects anonymized telemetry. See usage.go for details. You can disable telemetry collection either by setting telemetry: false in digger.yml, or by setting the TELEMETRY env variable to false.

Running migrations

atlas migrate apply --url $DATABASE_URL --allow-dirty

Local postgres

You might need to disable SSL if running the default docker image.

export DATABASE_URL=postgres://postgres:root@localhost:5432/postgres?sslmode=disable

Resources

  • Docs for comprehensive documentation and guides
  • Slack for discussion with the community and Digger team.
  • GitHub for code, issues, and pull requests
  • Medium for terraform automation and collaboration insights, articles, tutorials, and updates.

Frequently asked questions

Is Digger free to use?

Digger is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Digger do?

Terraform automation with pull request workflows

What is Digger written in?

Digger is primarily written in Go. Its source is publicly available at https://github.com/diggerhq/digger, and it has 5,045 GitHub stars.