Stars
Forks
Watchers
Developer links
Dagger
With 16,100 GitHub stars and created by Solomon Hykes (co-founder of Docker), Dagger eliminates proprietary YAML DSLs from CI/CD by letting developers write pipelines as real programs in their preferred language — then executing them identically on a laptop, in GitHub Actions, in GitLab CI, or on any machine with a container runtime. The BuildKit-based Dagger Engine runs every pipeline operation inside OCI containers, constructing a directed acyclic graph where each node is cached by default, parallelized automatically, and produces bit-for-bit reproducible outputs regardless of execution environment. Native SDKs generated from the GraphQL API schema provide Go, Python, TypeScript, PHP, Java, .NET, Elixir, and Rust developers with full type safety, IDE autocomplete, and the ability to unit-test CI pipelines using the same testing frameworks as application code. The module ecosystem enables cross-language composition where a Python team can invoke a Go team's build functions without learning Go, while filesystems, secrets, git repositories, and network tunnels are passed between functions as strongly-typed objects. Pipeline operations cache at container-layer granularity with content-addressed deduplication, and the interactive REPL enables step-by-step pipeline debugging with live container inspection. Host dependencies are explicit and strictly typed, eliminating implicit environment coupling that causes "works on my machine" failures. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache 2.0 licensed.
Benefits
- Write Pipelines as Real Code
- Define CI/CD logic in Go, Python, TypeScript, or five other languages with full type safety, IDE autocomplete, and unit testing — replacing brittle YAML with testable, refactorable programs.
- Identical Local and CI Execution
- Container-native execution ensures the same pipeline produces identical results on a developer laptop, GitHub Actions runner, GitLab CI, or bare-metal server — eliminating environment-specific failures.
- Automatic Content-Addressed Caching
- Every operation caches at container-layer granularity with content-addressed deduplication, making incremental builds instant and eliminating redundant work across pipeline runs without manual cache configuration.
- Cross-Language Module Composition
- Teams share pipeline functions across language boundaries — a Python team invokes a Go team's build module without learning Go, with filesystems, secrets, and tunnels passed as strongly-typed objects.
Features
- 8 Language SDKs
- Native SDKs for Go, Python, TypeScript, PHP, Java, .NET, Elixir, and Rust generated from the GraphQL schema provide idiomatic APIs with type safety and editor support.
- BuildKit Engine Runtime
- Container operations execute on the same BuildKit engine powering Docker builds, with DAG-based parallel execution, layer caching, and OCI-compliant container output.
- Interactive REPL Debugger
- Step through pipeline execution interactively with live container inspection, enabling rapid debugging of build failures without waiting for full CI runs to complete.
- Reusable Module Ecosystem
- Publish and consume pipeline functions as versioned modules from a registry, composing complex workflows from community-contributed and private organizational components.
- Secret and Tunnel Management
- Secrets and network tunnels are first-class typed objects that flow through the pipeline graph securely, never written to intermediate layers or exposed in cache.