Automation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud https://dagger.io
  • Go 82.2%
  • C# 4.8%
  • Python 2.5%
  • TypeScript 2.3%
  • Java 2.1%
  • Other 6%
Find a file
Solomon Hykes 887046c1fb
sdk/go: add workspace connect option (#12945)
* sdk/go: add workspace connect option

Signed-off-by: Solomon Hykes <solomon@dagger.io>

* fix(test): use local SDK in client generator tests

Signed-off-by: Solomon Hykes <solomon@dagger.io>

---------

Signed-off-by: Solomon Hykes <solomon@dagger.io>
2026-04-09 22:41:56 +02:00
.changes chore: prep for v0.20.4 (#12930) 2026-04-09 00:56:08 +02:00
.claude add initial draft of cache-expert skill (#11720) 2026-01-21 20:44:36 -08:00
.codex add initial draft of cache-expert skill (#11720) 2026-01-21 20:44:36 -08:00
.contributing Switch checks to @check pragma, improve UI (#11374) 2025-11-13 15:36:53 -08:00
.dagger core(changeset): use structured diff stats instead of client-side patch parsing (#12002) 2026-04-08 17:48:53 +02:00
.github gha: workaround for SkipWorkspaceModules() for macos (#12935) 2026-04-09 03:45:05 +02:00
analytics refactor labels to provide an env getter (#11453) 2025-11-20 18:19:25 -03:00
auth Import remaining buildkit dependencies in-tree (#11075) 2025-09-17 16:35:20 -07:00
cmd sdk/go: add workspace connect option (#12945) 2026-04-09 22:41:56 +02:00
core sdk/go: add workspace connect option (#12945) 2026-04-09 22:41:56 +02:00
dagql Revert "Make dagger connect faster (#11769)" (#12943) 2026-04-09 20:56:58 +02:00
docs chore: prep for v0.20.4 (#12930) 2026-04-09 00:56:08 +02:00
engine fix: resolve workspace module paths relative to config dir, not CWD (#12934) 2026-04-09 21:13:12 +02:00
evals llm: static tool scheme (#10366) 2025-05-14 14:53:34 -04:00
hack workspace: plumbing & compat (#11995) 2026-03-31 20:44:09 -04:00
helm/dagger chore: prep for v0.20.4 (#12930) 2026-04-09 00:56:08 +02:00
internal Revert "Make dagger connect faster (#11769)" (#12943) 2026-04-09 20:56:58 +02:00
lib/dagger/core chore: prep for v0.20.4 (#12930) 2026-04-09 00:56:08 +02:00
modules core(changeset): use structured diff stats instead of client-side patch parsing (#12002) 2026-04-08 17:48:53 +02:00
network (updated+fixed) support kernels without legacy xtables (6.17+) (#11731) 2026-01-27 13:29:17 -08:00
sdk sdk/go: add workspace connect option (#12945) 2026-04-09 22:41:56 +02:00
skills fix telemetry tests (#11939) 2026-03-02 23:58:51 +01:00
toolchains Rust sdk fixes (#12832) 2026-04-08 09:43:21 -07:00
util core(changeset): use structured diff stats instead of client-side patch parsing (#12002) 2026-04-08 17:48:53 +02:00
version replace git configs so no ssh keys or agents are needed (#12047) 2026-03-23 21:58:33 -03:00
.changie.yaml chore: prep for v0.19.2 (#11202) 2025-10-08 15:30:22 +02:00
.env.gha Kill the monolith (#11373) 2025-11-24 11:28:57 -08:00
.gitattributes llm: add ctrl+u for uploading changes to llm (#11276) 2025-10-24 17:38:41 -04:00
.gitignore workspace: plumbing & compat (#11995) 2026-03-31 20:44:09 -04:00
.golangci.yml Prepare lint config for golangci-lint v2.11 upgrade (#12863) 2026-04-07 00:08:31 +02:00
.goreleaser.common.yml fix invalid gorelease config (#11918) 2026-02-26 18:20:33 -05:00
.goreleaser.nightly.yml Fix failing goreleaser + do random chores in the area (#9721) 2025-02-26 16:27:21 +00:00
.goreleaser.prerelease.yml Fix failing goreleaser + do random chores in the area (#9721) 2025-02-26 16:27:21 +00:00
.goreleaser.yml Add manifest path override (#10155) 2025-04-15 10:49:06 +01:00
.markdownlint.yaml cli: improve usage messages 2024-07-25 19:53:22 +02:00
.ruff.toml Fix Python dev module (#6971) 2024-07-19 14:21:00 +00:00
.trivyignore chore: bump python sdk dep for protobuf cve (#11736) 2026-01-27 13:50:06 -08:00
CHANGELOG.md chore: prep for v0.20.4 (#12930) 2026-04-09 00:56:08 +02:00
CODE_OF_CONDUCT.md Move CODE_OF_CONDUCT to the root of the repository (#5153) 2023-05-25 15:23:24 +01:00
CONTRIBUTING.md expose recordtype to enginecachentry (#11899) 2026-02-24 00:15:05 -03:00
dagger.json feat: dagger up to start services (#11959) 2026-04-03 21:44:44 +02:00
go.mod core(changeset): use structured diff stats instead of client-side patch parsing (#12002) 2026-04-08 17:48:53 +02:00
go.sum core(changeset): use structured diff stats instead of client-side patch parsing (#12002) 2026-04-08 17:48:53 +02:00
install.ps1 fix ps1 installing latest dagger (#10047) 2025-04-02 11:48:44 +01:00
install.sh chore: remove duplicate words (#10141) 2025-04-14 14:53:37 +01:00
LICENSE update LICENSE 2022-10-24 19:52:50 -07:00
NOTICE Add php runtime (#7493) 2024-07-31 11:41:31 +00:00
README.md README: refocus on software delivery. 2026-01-12 12:02:07 -08:00
RELEASING.md feat: correctly pin the go pkg in module generation (#11826) 2026-03-20 15:17:37 +01:00

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.