Dagger
by Dagger.io
Dagger is an open-source CI/CD engine that lets developers define pipelines as code using regular programming languages (Go, Python, TypeScript, and others) instead of YAML, and runs every pipeline step inside containers so results are…
Definition
Dagger is an open-source CI/CD engine that lets developers define pipelines as code using regular programming languages (Go, Python, TypeScript, and others) instead of YAML, and runs every pipeline step inside containers so results are reproducible identically on a laptop or in any CI provider.
Overview
Dagger was created by Solomon Hykes, the co-founder and original creator of Docker, aiming to solve a persistent pain point in CI/CD: pipelines defined in provider-specific YAML (GitHub Actions, GitLab CI, CircleCI, Jenkinsfiles) are hard to test locally, hard to reuse across providers, and become their own poorly-typed, hard-to-debug programming language. Dagger instead lets engineers write pipeline logic in general-purpose languages using the Dagger SDK, where each operation (build, test, deploy step) executes inside a container via the Dagger Engine, which handles caching, execution, and artifact passing. Because every step runs in a container through the Dagger Engine's own execution model (built around BuildKit, the same low-level engine that powers modern `docker build`), a Dagger pipeline behaves identically whether it's run on a developer's laptop or inside any CI runner — eliminating the common 'works in CI but not locally' or 'works in GitHub Actions but not GitLab' problems. Dagger automatically caches intermediate steps based on content-addressed inputs, so re-running a pipeline after a small change only re-executes the steps actually affected. Dagger introduced Dagger Functions and the concept of 'Modules' — reusable, typed pipeline components that can be shared, versioned, and composed like software libraries rather than copy-pasted YAML snippets, along with a Dagger Cloud offering for pipeline visualization, tracing, and team collaboration. Because the CI logic lives in ordinary application code rather than a CI vendor's proprietary YAML dialect, teams can switch CI providers (or run the same pipeline across several) with minimal rework — the CI provider's config file is reduced to a thin shim that just invokes the Dagger pipeline.
Key Features
- Pipelines written as code in Go, Python, TypeScript, or other general-purpose languages instead of YAML
- Every pipeline step executes inside a container via the Dagger Engine, built on BuildKit
- Identical execution behavior locally and across any CI provider
- Automatic content-addressed caching of intermediate pipeline steps
- Dagger Functions and Modules enable reusable, versioned, shareable pipeline components
- CI provider config becomes a thin shim invoking the portable Dagger pipeline
- Dagger Cloud adds pipeline visualization, tracing, and collaboration features
- Created by Solomon Hykes, co-founder of Docker
Use Cases
Alternatives
History
Dagger is a programmable CI/CD engine that runs pipelines inside containers, letting engineers define build-and-deploy pipelines as code and run them identically on a laptop or any CI system. It was founded by Solomon Hykes — the creator of Docker — together with co-founders Andrea Luzzardi and Samuel Alba, all of whom had worked together at Docker, and it launched into public beta in 2022. Dagger's goal is to bring "the promise of Docker" to CI/CD: portable, reproducible pipelines that eliminate the brittle, hard-to-debug "glue" of traditional DevOps automation. It is designed to layer on top of existing CI systems like GitLab or CircleCI rather than replace them outright.
Sources
- Dagger — official website · as of 2026-07-17
- TechCrunch — "Docker founder Solomon Hykes launches Dagger" (2022) · as of 2026-07-17