dagger/dagger ↗
Created Jun 20, 2022 · View the dagger/dagger repository page
Automation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
121
Lines of Code
12,431
From
Dec 30, 2020
To
Jun 20, 2022
About dagger/dagger
Dagger is an open-source automation engine that enables programmable software delivery pipelines for building, testing, and shipping codebases. It functions as a platform that execcts across multiple environments—locally on developer machines, within CI/CD systems, or directly in cloud infrastructure—with the only requirement being a Linux container runtime like Docker. The core philosophy emphasizes making automation reproducible and observable through a strongly-typed system API and language-specific SDKs for Go, Python, TypeScript, PHP, Java, .NET, Elixir, and Rust.
The platform distinguishes itself through several key capabilities. Operations are content-addressed and incrementally cached, meaning that when you modify a file, only the affected tasks rerun rather than the entire pipeline. Every operation generates OpenTelemetry traces with granular logs and metrics, which can be visualized in the terminal or exported to external backends like Jaeger and Honeycomb for debugging. Dagger allows you to define custom typed artifacts and functions that work across language boundaries, bringing strong typing and composability to infrastructure automation. The execution engine orchestrates containers, filesystems, secrets, git repositories, and network tunnels through a unified API, eliminating the need for shell scripts and proprietary YAML configurations.
Dagger targets teams of all sizes seeking to modernize their software delivery infrastructure. It appeals to DevOps engineers, platform teams, and developers who want their CI/CD workflows to be as testable and maintainable as application code. The project includes an interactive REPL for exploration, a rich ecosystem of reusable modules, and comprehensive documentation, positioning it as a complete rethinking of how continuous integration and deployment should work in modern development environments.