Dagger is a platform designed for automating software delivery, enabling users to build, test, and ship any codebase reliably and at scale. It operates locally, in CI environments, or directly in the cloud, making it a versatile tool for developers.
Key features:
- Programmable - Dagger eliminates the need for shell scripts and proprietary YAML by providing a complete execution engine and system API.
- Local-first - Once automated, tasks can run reliably on any supported system, requiring only a container runtime like Docker.
- Repeatable - Tools run in containers, with explicit host dependencies and incremental operations, ensuring trustworthy outputs.
- Observable - Each operation emits OpenTelemetry traces, allowing for detailed visualization and debugging of workflows.
- System API - A cross-language API for orchestrating various resources, ensuring every operation is typed and composable.
- SDKs in 8 languages - Native SDKs for languages including Go, Python, and Java, providing idiomatic code with full type safety.
- Typed artifacts - Custom object types can be defined and passed across language boundaries without serialization.
- Incremental execution - Only affected operations re-run when inputs change, optimizing performance.
- Runs anywhere - Compatible with Linux and can be used on macOS and Windows via Docker Desktop.
- Built-in tracing - Operations emit OpenTelemetry spans, with options for exporting traces to compatible backends.
Dagger is ideal for developers looking to streamline their software delivery process with a reliable and flexible automation platform.