dagger

module
v0.19.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: Apache-2.0

README

Dagger: a better way to ship

Dagger is a platform for automating software delivery. It can build, test and ship any codebase, reliably and at scale.

Dagger runs locally, in your CI server, or directly in the cloud.

brew install dagger/tap/dagger

Why Dagger?

Dagger makes your software delivery programmable, local-first, repeatable and observable.

Programmable. Shell scripts and proprietary YAML are no longer acceptable for automating software delivery. Dagger provides: a complete execution engine and system API; SDKs for 8 languages; an interactive REPL; a rich ecosystem of reusable modules; and more.

Local-first. Once you automate a task with Dagger, it will reliably run on any supported system: your laptop, AI sandbox, CI server, or dedicated cloud infrastructure. The only dependency is a container runtime like Docker.

Repeatable. Tools run in containers, orchestrated by sandboxed functions. Host dependencies are explicit and strictly typed. Intermediate artifacts are built just-in-time. Every operation is incremental by default, with advanced cache control. Whether it's a test report, a build or a deployment, Dagger gives you an output you can trust.

Observable. Every operation emits a full OpenTelemetry trace, enriched by granular logs and metrics. Visualize the trace in directly in the terminal, or in a web view. Debug complex workflows immediately instead of guessing what went wrong from a wall of text logs.

Features

System API. A cross-language API for orchestrating containers, filesystems, secrets, git repositories, network tunnels, and more. Every operation is typed and composable.

SDKs in 8 languages. Native SDKs for Go, Python, TypeScript, PHP, Java, .NET, Elixir and Rust. Each SDK is generated from the API schema, so you get idiomatic code with full type safety and editor support.

Typed artifacts. Define 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.

Incremental execution. Every operation is keyed by its inputs. Change one file and only the affected operations re-run. Caching is content-addressed and works automatically across local runs and CI.

Runs anywhere. The only requirement is a Linux container runtime. Runs natively on Linux, or via Docker Desktop and similar products on macOS and Windows. Local and CI behavior are identical.

Built-in tracing. Every operation emits OpenTelemetry spans. The CLI includes a live TUI; traces can also be exported to Jaeger, Honeycomb, or any OTel-compatible backend.

Getting started

Community

Contributing

See CONTRIBUTING.md.

Directories

Path Synopsis
ci module
std/go module
std/graphql module
cmd
codegen command
Go name linting.
dagger command
dialstdio command
dnsname command
This is a post-setup plugin that establishes port forwarding - using iptables, from the host's network interface(s) to a pod's network interface.
This is a post-setup plugin that establishes port forwarding - using iptables, from the host's network interface(s) to a pod's network interface.
dump-id command
dump-labels command
engine command
init command
introspect command
json-schema command
dagger-json-schema is a tool to generate json schema from Dagger module config struct.
dagger-json-schema is a tool to generate json schema from Dagger module config struct.
sdk
idtui
Package idtui provides terminal user interface frontends for Dagger operations.
Package idtui provides terminal user interface frontends for Dagger operations.
internal/ioctx
Package ioctx provides a way to pass standard input, output, and error streams through a context.Context.
Package ioctx provides a way to pass standard input, output, and error streams through a context.Context.
dev module
dirdiff module
go module
graphql module
markdown module
shellcheck module
wolfi module
docs
src/scripts command
vcs
Package vcs exposes functions for resolving import paths and using version control systems, which can be used to implement behavior similar to the standard "go get" command.
Package vcs exposes functions for resolving import paths and using version control systems, which can be used to implement behavior similar to the standard "go get" command.
distconsts module
internal
buildkit/client/connhelper
Package connhelper provides helpers for connecting to a remote daemon host with custom logic.
Package connhelper provides helpers for connecting to a remote daemon host with custom logic.
buildkit/client/connhelper/dockercontainer
Package dockercontainer provides connhelper for docker-container://<container>
Package dockercontainer provides connhelper for docker-container://<container>
buildkit/client/connhelper/kubepod
Package kubepod provides connhelper for kube-pod://<pod>
Package kubepod provides connhelper for kube-pod://<pod>
buildkit/client/connhelper/nerdctlcontainer
Package nerdctlcontainer provides connhelper for nerdctl-container://<container>
Package nerdctlcontainer provides connhelper for nerdctl-container://<container>
buildkit/client/connhelper/npipe
Package npipe provides connhelper for npipe://<address>
Package npipe provides connhelper for npipe://<address>
buildkit/client/connhelper/podmancontainer
Package podmancontainer provides connhelper for podman-container://<container>
Package podmancontainer provides connhelper for podman-container://<container>
buildkit/client/connhelper/ssh
Package ssh provides connhelper for ssh://<SSH URL>
Package ssh provides connhelper for ssh://<SSH URL>
buildkit/frontend/dockerfile/command
Package command contains the set of Dockerfile commands.
Package command contains the set of Dockerfile commands.
buildkit/frontend/dockerfile/parser
The parser package implements a parser that transforms a raw byte-stream into a low-level Abstract Syntax Tree.
The parser package implements a parser that transforms a raw byte-stream into a low-level Abstract Syntax Tree.
mage module
modules
dirdiff module
gha module
go module
golangci module
graphql module
markdown module
ps-analyzer module
ruff module
shellcheck module
wolfi module
sdk
dotnet/dev module
util
ctrns
ctrns provides utilities for containerd resources that are pre-namespaced (instead)
ctrns provides utilities for containerd resources that are pre-namespaced (instead)
gitutil
gitutil and its contents is originally forked from github.com/dagger/dagger/internal/buildkit/util/gitutil
gitutil and its contents is originally forked from github.com/dagger/dagger/internal/buildkit/util/gitutil
patternmatcher
package patternmatcher is used for implementing globbing, and is forked from github.com/moby/patternmatcher/
package patternmatcher is used for implementing globbing, and is forked from github.com/moby/patternmatcher/
version module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL