Dagger (16,132 Stars) CI/CD Engine 2026: Write Pipelines in Python or Go, Run Anywhere
Dagger (16,132 stars) lets you write CI/CD pipelines as code in Python, Go or TypeScript - the same pipeline runs locally, in GitHub Actions, or in any runner. Here is the setup.
💡 What You Will Learn
Dagger (16,132 stars) lets you write CI/CD pipelines as code in Python, Go or TypeScript - the same pipeline runs locally, in GitHub Actions, or in any runner. Here is the setup.
📜 Table of Contents
The short answer
dagger/dagger (16,132 stars, Go) is an automation engine for building, testing, and shipping any codebase. Instead of writing YAML that only works inside one CI vendor, you write pipelines in a real programming language. The pipeline runs the same way locally, in CI, or on any machine with a container runtime.
Why it is different
- Real languages: Python, Go, TypeScript - full IDE support, tests, and reusable functions
- Same pipeline everywhere: debug locally, then run unchanged in GitHub Actions, GitLab CI, or Jenkins
- Container-native: every step runs in a hermetic container, so builds are reproducible
- Caching built-in: content-addressed caching makes re-runs fast
Minimal Python pipeline
import dagger
async def main():
async with dagger.Connection() as client:
src = client.host().directory(".")
python = (
client.container()
.from_("python:3.12")
.with_directory("/src", src)
.with_workdir("/src")
.with_exec(["pip", "install", "-r", "requirements.txt"])
.with_exec(["pytest"])
)
await python.stdout()
import asyncio
asyncio.run(main())
Install the SDK and run it:
pip install dagger-io
python pipeline.py
Real-world usage tips
- Start by containerizing your build steps - Dagger shines when every stage is a container.
- Use
with_execfor steps andcache_volumefor package caches (pip, npm). - Keep pipelines in a
ci/folder and version them with your code.
FAQ
Does it replace GitHub Actions? Not entirely - you can use Dagger inside GitHub Actions as the pipeline engine, keeping triggers and hosting there.
Do I need Docker? A container runtime is required (Docker, containerd, or a remote engine).
Is it production-ready? Yes - it is used in production by many companies and the engine is Apache-2.0.
❓ FAQ
Does it replace GitHub Actions?
Not entirely - you can use Dagger inside GitHub Actions as the pipeline engine, keeping triggers and hosting there.
Do I need Docker?
container runtime is required (Docker, containerd, or a remote engine).
Is it production-ready?
Yes - it is used in production by many companies and the engine is Apache-2.0.
Written by our editorial team; tools listed here are tested or verified against public sources. Links point to official sites or GitHub repos for reference only โ no paid placements.
