Introduction
Dagger is the missing software stack for CI. It makes your pipelines faster and more repeatable, not by throwing bigger machines at them, but by replacing artisanal scripts with a clean API, real code, and a portable DAG execution engine.
Once daggerized, your pipeline logic is decoupled from its environment. Trigger it before or after push; run it locally or let our cloud scale it out; spin up multi-container environments just in time; all cached automatically, traced end to end, and extensible in your favorite language.
Orientation
- Want to adopt Dagger in your project? Start with the Quickstart, then follow Workspace setup.
- Your project already uses Dagger? See CLI to run checks, generate code, and start services.
- Want to learn more about what Dagger can do? Keep reading.
What you can do
No code required. Install modules, run commands, get results.
Lint and format across your stack
dagger install github.com/dagger/eslint
dagger install github.com/dagger/prettier
dagger check
Run e2e tests with real services
dagger install github.com/dagger/playwright
dagger check
Run code generators
dagger install github.com/dagger/go
dagger generate
Debug a broken build
dagger check
dagger api call eslint lint terminal
Key features
Programmable. Real code — Go, Python, TypeScript — not YAML.
Local-first. Run your full pipeline before you push. Same result everywhere.
Zero-setup tracing. Every step traced automatically. No instrumentation code.
Interactive debugging. Drop into a terminal at any step of your pipeline.
Incremental execution. Only what changed gets re-executed.
Agent-friendly. Agents run Dagger checks in their dev loop. Sandboxed, cached, remote.
Native secrets. Plugs into your existing secret infrastructure.
Just-in-time services. Service dependencies build on demand, no pre-provisioning.