Dagger
An open-source automation engine to build, test, and ship any codebase repeatably and at scale — runs locally, in CI, or directly in the cloud.
At a Glance
About Dagger
Dagger is an open-source platform for automating software delivery, built by Dagger, Inc. and licensed under Apache 2.0. It lets engineers build, test, and deploy any codebase using a programmable, container-native runtime that runs identically on a developer's laptop, a CI server, or cloud infrastructure. The project is actively maintained on GitHub with over 15,900 stars and regular commits as of mid-2026.
What It Is
Dagger is a software delivery automation engine that replaces shell scripts and proprietary YAML-based CI configurations with a typed, programmable API. At its core, Dagger provides a cross-language system API for orchestrating containers, filesystems, secrets, git repositories, and network tunnels. Engineers write delivery pipelines in their language of choice — Go, Python, TypeScript, PHP, Java, .NET, Elixir, or Rust — using native SDKs generated from the API schema, giving full type safety and editor support. The runtime executes these pipelines in sandboxed, containerized functions, making behavior consistent across every environment.
Architecture and Core Design
Dagger's design centers on four principles the project describes as programmable, local-first, repeatable, and observable:
- Programmable: A complete execution engine and system API with SDKs for 8 languages, an interactive REPL, and a module ecosystem on Daggerverse.
- Local-first: The only runtime dependency is a Linux container runtime (Docker or compatible). Pipelines run identically on macOS and Windows via Docker Desktop.
- Repeatable: Every operation is keyed by its inputs and cached by default. Content-addressed caching works automatically across local runs and CI, so only affected operations re-run when inputs change.
- Observable: Every operation emits OpenTelemetry spans. The CLI includes a live terminal UI (TUI); traces can be exported to Jaeger, Honeycomb, or any OTel-compatible backend.
Module System and Typed Artifacts
Dagger supports custom object types with encapsulated state and functions. Types are content-addressed and can be passed across SDK language boundaries and module boundaries without serialization. The Daggerverse is the public registry for reusable Dagger modules, enabling teams to share and compose pipeline components. This module system is what the project positions as the replacement for copy-pasted YAML snippets and fragile shell scripts.
Deployment Model
Dagger runs as a local CLI tool installed via Homebrew (brew install dagger/tap/dagger) or other package managers. It connects to any local container runtime and can also be pointed at remote cloud infrastructure. Dagger Cloud is a companion SaaS product that adds a web-based trace visualization, centralized caching, and team-level observability on top of the open-source engine. The open-source core and the Cloud product are separate offerings.
Open-Source Status and Community
The core Dagger engine is published under the Apache License 2.0 at github.com/dagger/dagger. The repository had 15,935 stars and 886 forks as of June 2026, with 116 open issues and active daily pushes. Community channels include a Discord server (discord.gg/dagger-io) and GitHub Discussions. The project also runs community programs including Dagger Commanders and Engineering Deep Dives.
Community Discussions
Be the first to start a conversation about Dagger
Share your experience with Dagger, ask questions, or help others learn from your insights.
Pricing
Open Source
The core Dagger engine, free and open source under Apache 2.0.
- Full Dagger engine and system API
- SDKs for 8 languages
- Incremental caching
- OpenTelemetry tracing
- Interactive REPL
Capabilities
Key Features
- Programmable pipeline API in 8 languages (Go, Python, TypeScript, PHP, Java, .NET, Elixir, Rust)
- Container-native execution with sandboxed functions
- Content-addressed incremental caching across local and CI runs
- Built-in OpenTelemetry tracing with live terminal UI
- Interactive REPL for pipeline development
- Typed cross-language artifact passing without serialization
- Daggerverse module registry for reusable pipeline components
- Runs locally, in CI, or in the cloud with identical behavior
- System API for containers, filesystems, secrets, git repos, and network tunnels
- Dagger Cloud for web-based trace visualization and centralized caching
